Skip to content

后台任务

注册后台任务

定义任务

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"
  }
}

广州宝点数字化科技