Appearance
后台任务
注册后台任务
定义任务
C#
namespace JingJian.Package.Finance.Jobs
{
/// <summary>
/// 刷新营收看板
/// </summary>
[FixedTime(Type = FixedTimeType.PerDay, Hour = 0, Minute = 5)]
public class RefreshDailyStatisticJob : IJob
{
private readonly ILogger<RefreshDailyStatisticJob> _logger;
/// <summary>
/// 任务名称
/// </summary>
public string Name => nameof(RefreshDailyStatisticJob);
/// <summary>
///
/// </summary>
/// <param name="logger"></param>
public RefreshDailyStatisticJob(ILogger<RefreshDailyStatisticJob> logger)
{
_logger = logger;
}
/// <summary>
/// 执行
/// </summary>
public void Execute()
{
// 执行任务
}
/// <summary>
/// 错误
/// </summary>
/// <param name="ex"></param>
public void OnError(Exception ex)
{
_logger.LogError($"{Name},执行任务失败:{ex}");
}
}
}注册任务
C#
public override void OnMounted(IApplication application, IServiceProvider serviceProvider)
{
base.OnMounted(application, serviceProvider);
// 注册任务
var taskFactory = IocManager.Instance.RootServices.GetRequiredService<ITaskFactory>();
taskFactory.AddTask(serviceProvider, typeof(RefreshDailyStatisticJob));
}任务类型
- FixedTime : 固定时间,可设定每天,每小时指定固定时间执行。
任务执行引擎
注: 当前使用.net core Host BackgroundService执行任务。
appsettings.json 配置
json
{
// 如果在本地调试,使用本地任务激发,则增加以下节点。
// 云端生产环境,由任务中心激发,去除该节点。
"Job": {
"Type": "Host"
}
}