AntJob/AntJob.Server/Program.cs

57 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using AntJob.Server;
using AntJob.Server.Services;
using NewLife.Caching;
using NewLife.Caching.Services;
using NewLife.Log;
using NewLife.Model;
using NewLife.Security;
using Stardust;
using XCode;
// 启用控制台日志,拦截所有异常
XTrace.UseConsole();
var services = ObjectContainer.Current;
services.AddStardust();
// 默认数据目录
var set = NewLife.Setting.Current;
if (set.IsNew)
{
set.DataPath = "../Data";
set.BackupPath = "../Backup";
set.Save();
}
var set2 = XCodeSetting.Current;
if (set2.IsNew)
{
set2.ShowSQL = false;
set2.Save();
}
//// 过渡期暂时使用FastJson为了兼容旧数据序列化Start
//JsonHelper.Default = new FastJson();
services.AddSingleton(AntJobSetting.Current);
// 分布式缓存锚定配置中心RedisCache若无配置则使用本地MemoryCache
// 集群部署时务必使用RedisCache内部将使用Redis实现分布式锁
services.AddSingleton<ICacheProvider, RedisCacheProvider>();
services.AddSingleton<AppService>();
services.AddSingleton<JobService>();
// 注册密码提供者,用于通信过程中保护密钥,避免明文传输
services.AddSingleton<IPasswordProvider>(new SaltPasswordProvider { Algorithm = "md5", SaltTime = 60 });
// 预热数据层,执行反向工程建表等操作
EntityFactory.InitConnection("Ant");
// 修正旧版数据
_ = Task.Run(() => JobService.FixOld());
// 友好退出
var host = services.BuildHost();
host.Add<Worker>();
await host.RunAsync();