Program.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using FreeScheduler;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.Extensions.Hosting;
  4. using ZhonTai.Admin.Core;
  5. using ZhonTai.Admin.Core.Configs;
  6. using ZhonTai.Admin.Core.Startup;
  7. using ZhonTai.Admin.Tools.TaskScheduler;
  8. using ZhonTai.ApiUI;
  9. new HostApp(new HostAppOptions
  10. {
  11. //配置后置服务
  12. ConfigurePostServices = context =>
  13. {
  14. //context.Services.AddTiDb(context);
  15. //添加任务调度
  16. context.Services.AddTaskScheduler(options =>
  17. {
  18. options.ConfigureFreeSql = freeSql =>
  19. {
  20. freeSql.CodeFirst
  21. //配置任务表
  22. .ConfigEntity<TaskInfo>(a =>
  23. {
  24. a.Name("app_task");
  25. })
  26. //配置任务日志表
  27. .ConfigEntity<TaskLog>(a =>
  28. {
  29. a.Name("app_task_log");
  30. });
  31. };
  32. //模块任务处理器
  33. options.TaskHandler = new TaskHandler(options.FreeSql);
  34. });
  35. },
  36. //配置后置中间件
  37. ConfigurePostMiddleware = context =>
  38. {
  39. var app = context.App;
  40. var env = app.Environment;
  41. var appConfig = app.Services.GetService<AppConfig>();
  42. #region 新版Api文档
  43. if (env.IsDevelopment() || appConfig.ApiUI.Enable)
  44. {
  45. app.UseApiUI(options =>
  46. {
  47. options.RoutePrefix = appConfig.ApiUI.RoutePrefix;
  48. appConfig.Swagger.Projects?.ForEach(project =>
  49. {
  50. options.SwaggerEndpoint($"/swagger/{project.Code.ToLower()}/swagger.json", project.Name);
  51. });
  52. });
  53. }
  54. #endregion
  55. }
  56. }).Run(args);
  57. #if DEBUG
  58. public partial class Program { }
  59. #endif