• ABP官方文档翻译 7.3 Quartz集成


    Quartz集成

    介绍

      Quartz是一个全功能的、开源的job计划安排系统,可以用在小的apps也可以用于大型的企业系统。Abp.Quartz包简化了ABP集成Quartz。

      ABP有內建的持久化后台job队列和后台worker系统。如果对于后台workers你有更高级的计划安排需求,Quartz会是一个更好的选择。对于持久化后台job队列,Hangfire也是一个好的选择。

    安装

      在工程中安装Abp.Quartz nuget包并在模块上为AbpQuartzModule添加一个DependsOn特性:

    [DependsOn(typeof (AbpQuartzModule))]
    public class YourModule : AbpModule
    {
        //...
    }

    创建Jobs

      要创建一个新job,你可以实现Quartz的IJob接口,或者继承JobBase类(定义在Abp.Quartz包),这个类包含一些帮助属性和方法(例如日志和本地化)。一个简单的job类如下所示:

    public class MyLogJob : JobBase, ITransientDependency
    {
        public override void Execute(IJobExecutionContext context)
        {
            Logger.Info("Executed MyLogJob :)");
        }
    }

      我们简化了实现Execute方法来写日志。你可以参见Quartz文档了解更多。

    计划安排Jobs

      IQuartzScheduleJobManager用来计划安排工作。你可以注入到你的类(或可以在模块的PostInitialize方法中使用它)来规划jobs。规划一个job的示例控制器:

    public class HomeController : AbpController
    {
        private readonly IQuartzScheduleJobManager _jobManager;
    
        public HomeController(IQuartzScheduleJobManager jobManager)
        {
            _jobManager = jobManager;
        }
            
        public async Task<ActionResult> ScheduleJob()
        {
            await _jobManager.ScheduleAsync<MyLogJob>(
                job =>
                {
                    job.WithIdentity("MyLogJobIdentity", "MyGroup")
                        .WithDescription("A job to simply write logs.");
                },
                trigger =>
                {
                    trigger.StartNow()
                        .WithSimpleSchedule(schedule =>
                        {
                            schedule.RepeatForever()
                                .WithIntervalInSeconds(5)
                                .Build();
                        });
                });
    
            return Content("OK, scheduled!");
        }
    }   

    更多

      请参见Quart的文档了解更多关于Quartz的信息。

    返回主目录

  • 相关阅读:
    获取微信用户在微信小店的订单
    微信网页授权+获取用户基本信息+强制关注+JSSDK分享参数
    微信查询四六级成绩代码
    CURL SSL为6的由来
    阿里云虚拟主机安装禅道总结
    Android手机特殊软件配置
    微信支付参数一致性校验
    微信查询火星天气
    php下curl ssl常用问题
    群发技术-使用python3给微信好友群发消息
  • 原文地址:https://www.cnblogs.com/xajh/p/7124107.html
Copyright © 2020-2023  润新知