abp后台任务BackGroundWorker

1.创建 xxxWorker 作业类,并继承 Abp.Threading.BackgroundWorkers.PeriodicBackgroundWorkerBase 基类,与 Abp.Dependency.ISingletonDependency 接口

2.申明构造函数。注意:下面的的 Timer 是父类中的,不是构造函数上的 timer 参数。

3.重写父类的 DoWork 方法。在方法体中实现作业具体逻辑。

public class BatchCheckWork: PeriodicBackgroundWorkerBase, ISingletonDependency
    {
        public BatchCheckWork(AbpTimer timer) : base(timer)
        {
            Timer.Period = 7000;//7秒一次轮询
        }
        protected override void DoWork()//重写父类的 DoWork
        {
            BatchCheck();//运行的函数
        }
        public void BatchCheck() {
            using (IDbConnection conn = DapperHelper.CreateLocalConnection())
            {
                 //业务逻辑
            }
        }
    }

4.启动任务。(此处我在host展示层直接使用所以在Startup的WebHostModule中启用任务)

添加以下函数(启动项目后即可自动执行任务)

 public override void PostInitialize()
        {
            var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
            workManager.Add(IocManager.Resolve<BatchCheckWork>());
            //workManager.Start();
        }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
BackgroundJob 是 ABP 框架中的一个重要组件,用于处理后台任务。它可以让我们在后台执行一些长时间运行的任务,如发送邮件、生成报告、备份数据库等。 在 ABP 框架中,BackgroundJob 的实现基于 Hangfire。Hangfire 是一个 .NET 平台下的开源后台任务调度框架,它可以让我们方便地创建、管理和监控后台任务ABP 框架对 Hangfire 进行了封装,提供了一些简单易用的 API,使我们可以快速地创建和管理后台任务。下面是一个简单的示例: ```csharp public class MyJob : BackgroundJob<string> { public override async Task ExecuteAsync(string args) { // 执行后台任务的代码 } } public class MyService : ITransientDependency { private readonly IBackgroundJobManager _backgroundJobManager; public MyService(IBackgroundJobManager backgroundJobManager) { _backgroundJobManager = backgroundJobManager; } public async Task QueueJobAsync() { await _backgroundJobManager.EnqueueAsync(new MyJob(), "job args"); } } ``` 在上面的代码中,我们定义了一个名为 MyJob 的后台任务,它继承自 ABP 框架中的 BackgroundJob 类。这个后台任务接受一个字符串类型的参数,在 ExecuteAsync 方法中执行具体的后台任务代码。 接着,我们定义了一个名为 MyService 的服务,它依赖于 IBackgroundJobManager 接口。这个服务中有一个名为 QueueJobAsync 的方法,它使用 _backgroundJobManager.EnqueueAsync 方法将 MyJob 加入到后台任务队列中。 当我们调用 MyService 的 QueueJobAsync 方法时,MyJob 就会被加入到后台任务队列中,并在后台自动执行。我们可以通过 ABP 框架提供的界面来监控后台任务的执行情况,也可以通过代码来实现任务的暂停、恢复、取消等操作。 总之,BackgroundJob 是 ABP 框架中非常实用的一个组件,它可以帮助我们方便地处理后台任务,提高应用程序的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值