ABP官方文档翻译 7.3 Quartz集成

Posted RAINAI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的信息。

 

返回主目录

以上是关于ABP官方文档翻译 7.3 Quartz集成的主要内容,如果未能解决你的问题,请参考以下文章

ABP官方文档翻译 9.3 NHibernate集成

ABP官方文档翻译 5.4 SwaggerUI集成

ABP官方文档翻译 3.8 数据过滤器

ABP官方文档翻译 5.1 Web API控制器

ABP官方文档翻译 5.2 动态We API层

ABP官方文档翻译 7.1 后台Jobs和Workers