Admin.Core/src/platform/ZhonTai.Admin/Tools/TaskScheduler/TaskSchedulerServiceExtensions.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using FreeScheduler;
using FreeSql;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using System;
using ZhonTai.Admin.Core.Configs;
using ZhonTai.Admin.Core.Consts;
namespace ZhonTai.Admin.Tools.TaskScheduler;
public static class TaskSchedulerServiceExtensions
{
public static IServiceProvider ServiceProvider { get; private set; }
/// <summary>
/// 添加任务调度
/// </summary>
/// <param name="services"></param>
/// <param name="configureOptions"></param>
public static IServiceCollection AddTaskScheduler(this IServiceCollection services, Action<TaskSchedulerOptions> configureOptions = null)
{
return services.AddTaskScheduler(DbKeys.AppDb, configureOptions);
}
/// <summary>
/// 添加任务调度
/// </summary>
/// <param name="services"></param>
/// <param name="dbKey"></param>
/// <param name="configureOptions"></param>
public static IServiceCollection AddTaskScheduler(this IServiceCollection services, string dbKey, Action<TaskSchedulerOptions> configureOptions = null)
{
ServiceProvider = services.BuildServiceProvider();
var options = new TaskSchedulerOptions()
{
FreeSql = ServiceProvider.GetService<FreeSqlCloud>().Use(dbKey)
};
configureOptions?.Invoke(options);
var freeSql = options.FreeSql;
freeSql.CodeFirst
.ConfigEntity<TaskInfo>(a =>
{
a.Name("ad_task");
a.Property(b => b.Id).IsPrimary(true);
a.Property(b => b.Body).StringLength(-1);
a.Property(b => b.Interval).MapType(typeof(int));
a.Property(b => b.IntervalArgument).StringLength(1024);
a.Property(b => b.Status).MapType(typeof(int));
a.Property(b => b.CreateTime).ServerTime(DateTimeKind.Local);
a.Property(b => b.LastRunTime).ServerTime(DateTimeKind.Local);
})
.ConfigEntity<TaskLog>(a =>
{
a.Name("ad_task_log");
a.Property(b => b.Exception).StringLength(-1);
a.Property(b => b.Remark).StringLength(-1);
a.Property(b => b.CreateTime).ServerTime(DateTimeKind.Local);
});
后面还有 35 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
