Commit f26d46c3 by xiongyuwen

no message

parent 1224fc9d
using Abp.Domain.Services; using Abp.Application.Services;
using Abp.Domain.Services;
using Bailun.Discuz.Application.WeiPan.Dto.ResponseDto; using Bailun.Discuz.Application.WeiPan.Dto.ResponseDto;
using Bailun.Discuz.Domain.WeiPan; using Bailun.Discuz.Domain.WeiPan;
using System; using System;
...@@ -8,7 +9,7 @@ using System.Threading.Tasks; ...@@ -8,7 +9,7 @@ using System.Threading.Tasks;
namespace Bailun.Discuz.Application.WeiPan namespace Bailun.Discuz.Application.WeiPan
{ {
public interface IWeiPanService: IDomainService public interface IWeiPanService: IApplicationService
{ {
/// <summary> /// <summary>
///创建微盘空间 ///创建微盘空间
...@@ -26,7 +27,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -26,7 +27,7 @@ namespace Bailun.Discuz.Application.WeiPan
///// 获取首层文件列表 ///// 获取首层文件列表
///// </summary> ///// </summary>
///// <returns></returns> ///// <returns></returns>
Task<GetFileListResponse> GetFirstFileList(string userId); Task<GetFileListResponse> GetFirstFileList(string userId,bool isGetRedis = true);
///// <summary> ///// <summary>
///// 获取下载文件链接地址 ///// 获取下载文件链接地址
...@@ -47,6 +48,8 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -47,6 +48,8 @@ namespace Bailun.Discuz.Application.WeiPan
Task<long> CreateAttachment(long userId, string fileMd5, long typeId); Task<long> CreateAttachment(long userId, string fileMd5, long typeId);
Task<List<WeiPanFileList>> GetFileList(); Task<List<WeiPanFileList>> GetFileList();
Task ProcessWeiPanWorker(); Task<string> ProcessWeiPanWorker();
Task<WeiPanFileList> GetFileInfo(string fileId);
} }
} }
...@@ -25,6 +25,7 @@ using System.Net.Http.Headers; ...@@ -25,6 +25,7 @@ using System.Net.Http.Headers;
using Newtonsoft.Json; using Newtonsoft.Json;
using Bailun.Discuz.Application.Util; using Bailun.Discuz.Application.Util;
using Abp.Domain.Uow; using Abp.Domain.Uow;
using Abp.Domain.Services;
namespace Bailun.Discuz.Application.WeiPan namespace Bailun.Discuz.Application.WeiPan
{ {
...@@ -91,13 +92,13 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -91,13 +92,13 @@ namespace Bailun.Discuz.Application.WeiPan
/// </summary> /// </summary>
/// <param name="userId"></param> /// <param name="userId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<long> CreateAttachment(long userId, string fileMd5, long typeId) public async Task<long> CreateAttachment(long userId, string fileId, long typeId)
{ {
var file =await GetFileUrl(fileMd5); var file =await GetWeiPanFile(fileId);
if (file != null) if (file != null)
{ {
Attachments attachments = new Attachments(); Attachments attachments = new Attachments();
attachments.Uuid = fileMd5; attachments.Uuid = fileId;
attachments.UserId = userId; attachments.UserId = userId;
attachments.TypeId = typeId; attachments.TypeId = typeId;
attachments.IsRemote = 0; attachments.IsRemote = 0;
...@@ -110,7 +111,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -110,7 +111,7 @@ namespace Bailun.Discuz.Application.WeiPan
attachments.Ip = ""; attachments.Ip = "";
attachments.CreatedAt = DateTime.Now; attachments.CreatedAt = DateTime.Now;
attachments.UpdatedAt = DateTime.Now; attachments.UpdatedAt = DateTime.Now;
return _attachmentsRepository.InsertAndGetId(attachments); return await _attachmentsRepository.InsertAndGetIdAsync(attachments);
} }
else else
{ {
...@@ -124,12 +125,17 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -124,12 +125,17 @@ namespace Bailun.Discuz.Application.WeiPan
///// 获取首层文件列表 ///// 获取首层文件列表
///// </summary> ///// </summary>
///// <returns></returns> ///// <returns></returns>
public async Task<GetFileListResponse> GetFirstFileList(string userId) public async Task<GetFileListResponse> GetFirstFileList(string userId,bool isGetRedis=true)
{ {
//判断缓存中是否有值,如果有值直接读取 //判断缓存中是否有值,如果有值直接读取
var redisKey = Constants.First_File_List; var redisKey = Constants.First_File_List;
var cachingResponse = RedisHelper.HGet<GetFileListResponse>(redisKey, userId); GetFileListResponse cachingResponse = null;
if(cachingResponse != null) if(isGetRedis)
{
cachingResponse = RedisHelper.HGet<GetFileListResponse>(redisKey, userId);
}
if (cachingResponse != null)
{ {
return cachingResponse; return cachingResponse;
} }
...@@ -168,7 +174,8 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -168,7 +174,8 @@ namespace Bailun.Discuz.Application.WeiPan
u.ctime = ConvertToDateTime(u.ctime).ToString(); u.ctime = ConvertToDateTime(u.ctime).ToString();
}); });
} }
RedisHelper.HSet(redisKey, userId, apiOutput); if(isGetRedis)
RedisHelper.HSet(redisKey, userId, apiOutput);
return apiOutput; return apiOutput;
} }
} }
...@@ -346,15 +353,21 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -346,15 +353,21 @@ namespace Bailun.Discuz.Application.WeiPan
} }
public async Task<WeiPanFileList> GetFileInfo(string fileId)
{
return await GetWeiPanFile(fileId);
}
///// <summary> ///// <summary>
///// 获取下载文件链接地址 ///// 获取下载文件链接地址
///// </summary> ///// </summary>
///// <returns></returns> ///// <returns></returns>
public async Task<string> GetViewFile(string userId, string fileId, string md5, string fileName) public async Task<string> GetViewFile(string userId, string fileId, string md5, string fileName)
{ {
string fileUrl =(await GetFileUrl(md5))?.QiniuUrl; string fileUrl = "";
if (fileUrl == null) // string fileUrl =(await GetFileUrl(md5))?.QiniuUrl;
{ //if (fileUrl == null)
// {
GetViewFileReuqest getViewFileRequest = new GetViewFileReuqest(); GetViewFileReuqest getViewFileRequest = new GetViewFileReuqest();
getViewFileRequest.userid = userId; getViewFileRequest.userid = userId;
getViewFileRequest.fileid = fileId; getViewFileRequest.fileid = fileId;
...@@ -388,13 +401,13 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -388,13 +401,13 @@ namespace Bailun.Discuz.Application.WeiPan
{ {
fileUrl = $"http://img.blsct.com/{uploadFileName}"; fileUrl = $"http://img.blsct.com/{uploadFileName}";
//存入至表中 //存入至表中
WeiPanFileList weiPanFileList = new WeiPanFileList(); //WeiPanFileList weiPanFileList = new WeiPanFileList();
weiPanFileList.CreateTime = DateTime.Now; //weiPanFileList.CreateTime = DateTime.Now;
weiPanFileList.FileId = fileId; //weiPanFileList.FileId = fileId;
weiPanFileList.FileMd5 = md5; //weiPanFileList.FileMd5 = md5;
weiPanFileList.FileName = fileName; //weiPanFileList.FileName = fileName;
weiPanFileList.QiniuUrl = fileUrl; //weiPanFileList.QiniuUrl = fileUrl;
await _weiPanFileListRepository.AddAsync(weiPanFileList, true); //await _weiPanFileListRepository.AddAsync(weiPanFileList, true);
} }
else else
{ {
...@@ -406,7 +419,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -406,7 +419,7 @@ namespace Bailun.Discuz.Application.WeiPan
{ {
throw new Exception(apiOutput.errmsg); throw new Exception(apiOutput.errmsg);
} }
} // }
return fileUrl; return fileUrl;
} }
...@@ -443,9 +456,9 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -443,9 +456,9 @@ namespace Bailun.Discuz.Application.WeiPan
/// 处理微盘自动发帖功能 /// 处理微盘自动发帖功能
/// </summary> /// </summary>
public async Task ProcessWeiPanWorker() public async Task<string> ProcessWeiPanWorker()
{ {
StringBuilder messageSb = new StringBuilder(); ;
string userId = "chenzekai"; string userId = "chenzekai";
List<WeiPanFileList> inserWeiPanFileList = new List<WeiPanFileList>(); List<WeiPanFileList> inserWeiPanFileList = new List<WeiPanFileList>();
//1:获取线上的所有文档数据 //1:获取线上的所有文档数据
...@@ -454,7 +467,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -454,7 +467,7 @@ namespace Bailun.Discuz.Application.WeiPan
//string value = "测试数据"; //string value = "测试数据";
//RedisHelper.Set("key", filList); //RedisHelper.Set("key", filList);
//List<WeiPanFileList> filList = RedisHelper.Get<List<WeiPanFileList>>("key"); //List<WeiPanFileList> filList = RedisHelper.Get<List<WeiPanFileList>>("key");
//filList.RemoveAt(1);
//2:判断当前fileid是否存在于数据库中, 如果不存在则添加 //2:判断当前fileid是否存在于数据库中, 如果不存在则添加
foreach (var file in filList) foreach (var file in filList)
{ {
...@@ -470,17 +483,14 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -470,17 +483,14 @@ namespace Bailun.Discuz.Application.WeiPan
//判断当前的md5是否一致,如果不一致则要更新URL地址 //判断当前的md5是否一致,如果不一致则要更新URL地址
if(weiPanFile.FileMd5!=file.FileMd5) if(weiPanFile.FileMd5!=file.FileMd5)
{ {
messageSb.Append($"修改了文件:{weiPanFile.FileName};");
//重新上传至七牛云 //重新上传至七牛云
weiPanFile.QiniuUrl = await GetViewFile(userId, file.FileId, file.FileMd5, file.FileName); weiPanFile.QiniuUrl = await GetViewFile(userId, file.FileId, file.FileMd5, file.FileName);
weiPanFile.FileMd5 = file.FileMd5;
weiPanFile.FileName = file.FileName;
//更新表md5值
_weiPanFileListRepository.Update(weiPanFile);
//更新附件表 //更新附件表
var typeId =weiPanFile.ThreadId; //var typeId =weiPanFile.ThreadId;
if(typeId>0) //if(typeId>0)
{ //{
var attachment=await _attachmentsRepository.Query().AsNoTracking().Where(u => u.TypeId == typeId).FirstOrDefaultAsync(); var attachment=await _attachmentsRepository.Query().AsNoTracking().Where(u => u.Uuid == weiPanFile.FileId).OrderByDescending(u=>u.CreatedAt).FirstOrDefaultAsync();
if(attachment!=null) if(attachment!=null)
{ {
attachment.FilePath = weiPanFile.QiniuUrl; attachment.FilePath = weiPanFile.QiniuUrl;
...@@ -488,11 +498,34 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -488,11 +498,34 @@ namespace Bailun.Discuz.Application.WeiPan
attachment.FileName = weiPanFile.FileName; attachment.FileName = weiPanFile.FileName;
_attachmentsRepository.Update(attachment); _attachmentsRepository.Update(attachment);
} }
} //}
//更新表md5值
weiPanFile.FileMd5 = file.FileMd5;
weiPanFile.FileName = file.FileName;
_weiPanFileListRepository.Update(weiPanFile);
} }
} }
} }
//判断线上文件列表数据是否有删除,如果有删除要进行同步删除
var fileList= await _weiPanFileListRepository.Query().AsNoTracking().ToListAsync();
var onLineFileIds = filList.Select(u => u.FileId).ToArray();
var delFiles=fileList.Where(u => !onLineFileIds.Contains(u.FileId)).ToList();
if(delFiles.Any())
{
messageSb.Append($"删除帖子数量为:{delFiles.Count},分别为:{string.Join(",", delFiles.Select(u => u.FileName).ToArray()) };");
foreach (var item in delFiles)
{
await _weiPanFileListRepository.DeleteAsync(item);
}
}
if (inserWeiPanFileList.Count>0|| delFiles.Any())//有新增则清除缓存
{
messageSb.Append($"新增帖子数量为:{inserWeiPanFileList.Count},分别为:{string.Join(",", inserWeiPanFileList.Select(u => u.FileName).ToArray()) };");
RedisHelper.HDel(Constants.File_List_Tree);//清除缓存
RedisHelper.HDel(Constants.First_File_List);//清除缓存
}
_weiPanFileListRepository.BulkInsert(inserWeiPanFileList.ToArray()); _weiPanFileListRepository.BulkInsert(inserWeiPanFileList.ToArray());
var noTieZilist=await _weiPanFileListRepository.Query().AsNoTracking().Where(u => u.ThreadId == 0).ToListAsync(); var noTieZilist=await _weiPanFileListRepository.Query().AsNoTracking().Where(u => u.ThreadId == 0).ToListAsync();
foreach (var item in noTieZilist) foreach (var item in noTieZilist)
...@@ -502,9 +535,11 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -502,9 +535,11 @@ namespace Bailun.Discuz.Application.WeiPan
if(!string.IsNullOrEmpty(threadId)) if(!string.IsNullOrEmpty(threadId))
{ {
item.ThreadId = Convert.ToInt64(threadId); item.ThreadId = Convert.ToInt64(threadId);
_weiPanFileListRepository.Add(item,true); await _weiPanFileListRepository.UpdateAsync(item);
} }
} }
return messageSb.Length==0?"无新增帖子":messageSb.ToString();
} }
...@@ -516,7 +551,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -516,7 +551,7 @@ namespace Bailun.Discuz.Application.WeiPan
var result = JsonHelper.FromJson<GetDiscuzTokenRespnse>(response); var result = JsonHelper.FromJson<GetDiscuzTokenRespnse>(response);
var token= result.data.attributes.access_token; var token= result.data.attributes.access_token;
//生成附件 //生成附件
var attachmentid = await CreateAttachment(result.data.id, weiPanFile.FileMd5, 0); var attachmentid = await CreateAttachment(result.data.id, weiPanFile.FileId, 0);
if (!string.IsNullOrEmpty(token)) if (!string.IsNullOrEmpty(token))
{ {
//发布帖子 //发布帖子
...@@ -543,10 +578,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -543,10 +578,7 @@ namespace Bailun.Discuz.Application.WeiPan
data.attributes.price =0 ; data.attributes.price =0 ;
publishTieZiRequest.data = data; publishTieZiRequest.data = data;
var apiUrl = $"http://discuz.bailuntec.com/api/threads"; var apiUrl = $"http://discuz.bailuntec.com/api/threads";
Dictionary<string, string> dic = new Dictionary<string, string>(); var res = JsonHelper.ToObject<PublishTieZiResponse>(Client_Post(publishTieZiRequest.ToJson(), apiUrl, "Bearer " + token));
dic.Add("authorization", "Bearer " + token);
var res= JsonHelper.ToObject<PublishTieZiResponse>(HY.Base.Util.HttpHelper.PostData(apiUrl, publishTieZiRequest.ToJson(), null, dic, null, null, null));
resultId = res.data.id; resultId = res.data.id;
} }
return resultId; return resultId;
...@@ -572,24 +604,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -572,24 +604,7 @@ namespace Bailun.Discuz.Application.WeiPan
HttpResponseMessage response = client.PostAsync(requestUri, content).Result; HttpResponseMessage response = client.PostAsync(requestUri, content).Result;
return response.Content.ReadAsStringAsync().Result; return response.Content.ReadAsStringAsync().Result;
} }
static readonly HttpClient Client = new HttpClient();
public string Post(string url,string token,string postData)
{
//发送Post请求
var request = (HttpWebRequest)WebRequest.Create(url);
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = data.Length;
request.Headers.Add("authorization", token);
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
return new StreamReader(response.GetResponseStream()).ReadToEnd();
}
List<ItemItem> fileItems = new List<ItemItem>(); List<ItemItem> fileItems = new List<ItemItem>();
//} //}
/// <summary> /// <summary>
...@@ -641,7 +656,7 @@ namespace Bailun.Discuz.Application.WeiPan ...@@ -641,7 +656,7 @@ namespace Bailun.Discuz.Application.WeiPan
List<WeiPanFileList> weiPanFileLists = new List<WeiPanFileList>(); List<WeiPanFileList> weiPanFileLists = new List<WeiPanFileList>();
List<ItemItem> itemItems = new List<ItemItem>(); List<ItemItem> itemItems = new List<ItemItem>();
var token = GetQYWeChatToken(userId); var token = GetQYWeChatToken(userId);
var firstFiles = await GetFirstFileList(userId); var firstFiles = await GetFirstFileList(userId,false);
if (firstFiles.file_list != null) if (firstFiles.file_list != null)
{ {
firstFiles.file_list.item.ForEach(u => firstFiles.file_list.item.ForEach(u =>
......
...@@ -76,10 +76,14 @@ namespace Bailun.Discuz.Service.Controllers ...@@ -76,10 +76,14 @@ namespace Bailun.Discuz.Service.Controllers
} }
[HttpGet("ProcessWeiPanWorker")] [HttpGet("ProcessWeiPanWorker")]
public async Task ProcessWeiPanWorker() public async Task<string> ProcessWeiPanWorker()
{ {
await _iweiPanService.ProcessWeiPanWorker(); return await _iweiPanService.ProcessWeiPanWorker();
}
[HttpGet("GetFileInfo")]
public async Task<WeiPanFileList> GetFileInfo(string fileId)
{
return await _iweiPanService.GetFileInfo(fileId);
} }
} }
} }
...@@ -3,10 +3,13 @@ ...@@ -3,10 +3,13 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerfileContext>..\..\..</DockerfileContext>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CSRedisCore" Version="3.6.6" /> <PackageReference Include="CSRedisCore" Version="3.6.6" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="2.2.0" /> <PackageReference Include="Microsoft.Extensions.Hosting" Version="2.2.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.9" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="appsettings.json"> <None Update="appsettings.json">
......
...@@ -4,6 +4,7 @@ using Abp.Reflection.Extensions; ...@@ -4,6 +4,7 @@ using Abp.Reflection.Extensions;
using Abp.Threading.BackgroundWorkers; using Abp.Threading.BackgroundWorkers;
using Bailun.AbpCore; using Bailun.AbpCore;
using Bailun.AbpCore.ServiceFabric; using Bailun.AbpCore.ServiceFabric;
using Bailun.Discuz;
using Bailun.Discuz.ConsoleApp.Publish.Worker; using Bailun.Discuz.ConsoleApp.Publish.Worker;
using Bailun.Discuz.Domain.ExternalApi; using Bailun.Discuz.Domain.ExternalApi;
using Bailun.ServiceFabric; using Bailun.ServiceFabric;
...@@ -16,7 +17,7 @@ using System; ...@@ -16,7 +17,7 @@ using System;
using System.IO; using System.IO;
using Z.EntityFramework.Extensions; using Z.EntityFramework.Extensions;
namespace Bailun.Discuz.ConsoleApp.Publish namespace Bailun.Amazon.ConsoleApp.Publish
{ {
[DependsOn( [DependsOn(
typeof(EFCoreModule), typeof(EFCoreModule),
...@@ -26,6 +27,7 @@ namespace Bailun.Discuz.ConsoleApp.Publish ...@@ -26,6 +27,7 @@ namespace Bailun.Discuz.ConsoleApp.Publish
{ {
public override void PreInitialize() public override void PreInitialize()
{ {
var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var configurationBuilder = new ConfigurationBuilder() var configurationBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) .SetBasePath(Directory.GetCurrentDirectory())
...@@ -38,7 +40,7 @@ namespace Bailun.Discuz.ConsoleApp.Publish ...@@ -38,7 +40,7 @@ namespace Bailun.Discuz.ConsoleApp.Publish
var serviceProvider = WindsorRegistrationHelper.CreateServiceProvider(IocManager.IocContainer, services); var serviceProvider = WindsorRegistrationHelper.CreateServiceProvider(IocManager.IocContainer, services);
var dbContextOptionsBuilder = new DbContextOptionsBuilder<BaseContext>(); var dbContextOptionsBuilder = new DbContextOptionsBuilder<BaseContext>();
var conn = configuration.GetConnectionString("Default"); var conn = configuration.GetConnectionString("Discuz");
dbContextOptionsBuilder.UseMySql(conn).UseInternalServiceProvider(serviceProvider); dbContextOptionsBuilder.UseMySql(conn).UseInternalServiceProvider(serviceProvider);
IocManager.IocContainer.Register(Component.For<DbContextOptions<BaseContext>>() IocManager.IocContainer.Register(Component.For<DbContextOptions<BaseContext>>()
.Instance(dbContextOptionsBuilder.Options) .Instance(dbContextOptionsBuilder.Options)
...@@ -53,23 +55,34 @@ namespace Bailun.Discuz.ConsoleApp.Publish ...@@ -53,23 +55,34 @@ namespace Bailun.Discuz.ConsoleApp.Publish
ConfigManagerConf.SetConfiguration(configuration); ConfigManagerConf.SetConfiguration(configuration);
services.AddMicroServiceApi<ITaskJobApi>(ConfigManagerConf.GetValue("ApiServerUrl:TaskJobUrl")); services.AddMicroServiceApi<ITaskJobApi>(ConfigManagerConf.GetValue("ApiServerUrl:TaskJobUrl"));
services.AddMicroServiceApi<IPamsApi>(ConfigManagerConf.GetValue("ApiServerUrl:PamsUrl"));
services.AddAbp<ConsoleModule>(); services.AddAbp<ConsoleModule>();
string hostName = ConfigManagerConf.GetValue("redis:HostName");
string port = ConfigManagerConf.GetValue("redis:Port");
string password = ConfigManagerConf.GetValue("redis:Password");
string defaultdatabase = ConfigManagerConf.GetValue("redis:Defaultdatabase");
var redis_connString = $"{hostName}:{port}, defaultDatabase = {defaultdatabase},password={password}, poolsize = 500, ssl = false, writeBuffer = 10240";
var rs = new CSRedis.CSRedisClient(redis_connString);
RedisHelper.Initialization(rs);//初始化
Configuration.UnitOfWork.IsTransactional = false; Configuration.UnitOfWork.IsTransactional = false;
} }
public override void Initialize() public override void Initialize()
{ {
var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
IocManager.RegisterAssemblyByConvention(typeof(ConsoleModule).GetAssembly()); IocManager.RegisterAssemblyByConvention(typeof(ConsoleModule).GetAssembly());
workManager.Add(IocManager.Resolve<PublishWeiPanWorker>());
} }
public override void PostInitialize() public override void PostInitialize()
{ {
var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
var taskType = Environment.GetEnvironmentVariable("TaskType");
Console.WriteLine($"TaskType:{taskType}");
workManager.Add(IocManager.Resolve<PublishWeiPanWorker>());
} }
} }
} }
\ No newline at end of file
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["src/console/Bailun.Discuz.ConsoleApp.Publish/Bailun.Discuz.ConsoleApp.Publish.csproj", "src/console/Bailun.Discuz.ConsoleApp.Publish/"]
COPY ["src/Bailun.Discuz.Application/Bailun.Discuz.Application.csproj", "src/Bailun.Discuz.Application/"]
COPY ["src/Bailun.Discuz.Domain/Bailun.Discuz.Domain.csproj", "src/Bailun.Discuz.Domain/"]
COPY ["src/Bailun.Discuz.EFCore/Bailun.Discuz.EFCore.csproj", "src/Bailun.Discuz.EFCore/"]
COPY ["src/Bailun.Discuz.Service/Bailun.Discuz.Service.csproj", "src/Bailun.Discuz.Service/"]
RUN dotnet restore "src/console/Bailun.Discuz.ConsoleApp.Publish/Bailun.Discuz.ConsoleApp.Publish.csproj"
COPY . .
WORKDIR "/src/src/console/Bailun.Discuz.ConsoleApp.Publish"
RUN dotnet build "Bailun.Discuz.ConsoleApp.Publish.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Bailun.Discuz.ConsoleApp.Publish.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Bailun.Discuz.ConsoleApp.Publish.dll"]
\ No newline at end of file
{
"profiles": {
"Bailun.Discuz.ConsoleApp.Publish": {
"commandName": "Project"
},
"Docker": {
"commandName": "Docker"
}
}
}
\ No newline at end of file
using Abp.Dependency; using Abp.Dependency;
using Abp.Threading.BackgroundWorkers; using Abp.Threading.BackgroundWorkers;
using Abp.Threading.Timers; using Abp.Threading.Timers;
using Bailun.Discuz.Application.WeiPan;
using Bailun.ServiceFabric;
using System; using System;
namespace Bailun.Discuz.ConsoleApp.Publish.Worker namespace Bailun.Discuz.ConsoleApp.Publish.Worker
{ {
public class PublishWeiPanWorker : PeriodicBackgroundWorkerBase, ISingletonDependency public class PublishWeiPanWorker : PeriodicBackgroundWorkerBase, ISingletonDependency
{ {
//private readonly IListingAnalysisService _listingAnalysisService; private readonly IWeiPanService _weiPanService;
//private readonly IListingGroupService _listingGroupService;
//public PublishWeiPanWorker(AbpTimer timer,
// IListingAnalysisService listingAnalysisService,
// IListingGroupService listingGroupService) : base(timer)
//{
// timer.Period = 1000 * 60 * 30;
// timer.RunOnStart = true;
// _listingAnalysisService = listingAnalysisService; public PublishWeiPanWorker(AbpTimer timer,
// _listingGroupService = listingGroupService; IWeiPanService weiPanService) : base(timer)
//}
public PublishWeiPanWorker(AbpTimer timer) : base(timer)
{ {
timer.Period = 1000; //*60 * 30 _weiPanService = weiPanService;
var minute = ConfigManagerConf.GetValue("PublishWeiPanWorkerRunTime:Minute");
timer.Period = 1000 * 60 * Convert.ToInt32(minute);
timer.RunOnStart = true; timer.RunOnStart = true;
} }
protected override void DoWork() protected override void DoWork()
{ {
try try
{ {
Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:开始listing分析");
Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:结束listing分析"); Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:开始生成帖子中");
var result= _weiPanService.ProcessWeiPanWorker().GetAwaiter().GetResult();
Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}:生成帖子完毕,"+ result);
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"lazada listing分析异常:{ex.Message},异常堆栈为:{ex.StackTrace}"); Console.WriteLine($"生成帖子异常:{ex.Message},异常堆栈为:{ex.StackTrace}");
} }
} }
} }
......
{ {
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=10.0.8.6;port=3306;database=bailun_bltpro;uid=root;password=#7kfnymAM$Y9-Ntf;Convert Zero Datetime=True;Allow User Variables=True;pooling=true", "Discuz": "Server=106.55.44.113;port=3306;database=discuz;uid=admin;password=e066d4d1;Convert Zero Datetime=True;Allow User Variables=True;pooling=true"
"BltPro": "Server=10.0.8.6;port=3306;database=bailun_bltpro;uid=root;password=#7kfnymAM$Y9-Ntf;Convert Zero Datetime=True;Allow User Variables=True;pooling=true"
}, },
"redis": { "redis": {
"HostName": "172.31.255.227", "HostName": "10.0.8.8",
"Port": "6379", "Port": "6379",
"Password": "", "Password": "",
"Defaultdatabase": 1 "Defaultdatabase": 1
}, },
"PublishWeiPanWorkerRunTime": {
"minute": "30"
},
"QYWeChat": {
"AppId": "ww833808f6b8dc0745",
"Secret": "QmoJDF4oHEppM1CAAfjtkeu494LuKmUOZSwNCxO7E40",
"WeiPanSpaceId": "s.ww833808f6b8dc0745.610693393XlV",
"WeiPanSpaceFileId": "s.ww833808f6b8dc0745.610693393XlV_d.6106935069y7b"
},
"ApiServerUrl": { "ApiServerUrl": {
"ProductUrl": "http://pro.bailuntec.com", "ProductUrl": "http://pro.bailuntec.com",
"ProfitApiAddress": "http://profit.bailuntec.com", "ProfitApiAddress": "http://profit.bailuntec.com",
......
{ {
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=gz-cdb-oxt89knc.sql.tencentcdb.com;port=62967;database=bailun_bltpro;uid=root;password=#7kfnymAM$Y9-Ntf;Convert Zero Datetime=True;Allow User Variables=True;pooling=true" "Discuz": "Server=106.55.44.113;port=3306;database=discuz;uid=admin;password=e066d4d1;Convert Zero Datetime=True;Allow User Variables=True;pooling=true"
}, },
"redis": { "redis": {
"HostName": "localhost", "HostName": "10.0.8.8",
"Port": "6379", "Port": "6379",
"Password": "", "Password": "",
"Defaultdatabase": "1" "Defaultdatabase": 1
},
"PublishWeiPanWorkerRunTime": {
"Minute": "1"
},
"QYWeChat": {
"AppId": "ww833808f6b8dc0745",
"Secret": "QmoJDF4oHEppM1CAAfjtkeu494LuKmUOZSwNCxO7E40",
"WeiPanSpaceId": "s.ww833808f6b8dc0745.610693393XlV",
"WeiPanSpaceFileId": "s.ww833808f6b8dc0745.610693393XlV_d.6106935069y7b"
}, },
"ApiServerUrl": { "ApiServerUrl": {
"ProductUrl": "http://pro.bailuntec.com", "ProductUrl": "http://pro.bailuntec.com",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment