c# - 石英作业未开始
问题描述
我正在尝试使用 Abp.Quartz 来安排作业。
使用 net core 2.2、abp 4.5
我在 https://aspnetboilerplate.com/Pages/Documents/Quartz-Integration的文档中做了所有事情,只在 PostInitialize 方法中解决了它。
最后,我尝试了与文档中完全相同的方法(从控制器启动调度程序)。
但它也没有奏效。作业未开始。
namespace Cloud
{
[DependsOn(typeof(AbpZeroCoreModule),
typeof(AbpQuartzModule))]
public class CloudCoreModule : AbpModule
{
public override void PreInitialize()
{
}
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(typeof(CloudCoreModule)
.GetAssembly());
}
public override void PostInitialize()
{
IocManager.Resolve<IQuartzScheduleJobManager>().ScheduleAsync<ApiRequestQueues.ApiRequestProcessor>(
job =>
{
job
.WithIdentity("RevolutApiProcessor")
.WithDescription("A job witch processing request front");
},
trigger =>
{
trigger
.StartNow()
.WithSimpleSchedule(
schedule =>
{
schedule
.RepeatForever()
.WithIntervalInSeconds(5)
.Build();
});
});
}
}
}
这是类 ApiRequestProcessor
public class ApiRequestProcessor : JobBase, ITransientDependency
{
public override async Task Execute(IJobExecutionContext context)
{
//some work
}
}
解决方案
迟到总比没有好。
我已经设法让这个工作,虽然没有Abp.Quartz
包。如果您能够使用标准Quartz
包,则可以使用以下步骤:
- 像往常一样定义和设置您的工作
Startup.cs
- 确保你的类实现了
IJob
快乐Quartz
和ITransientDependency
ASP.NET Boilerplate - 非常重要,如果您的作业代码
DbContext
以任何方式使用,您需要确保[UnitOfWork]
装饰器在您的作业类上(这对于确保您的作业以原子方式运行并且不影响可能在您的服务器上发生的任何其他事务非常重要)
简而言之,一个基本的工作类可能看起来像这样:
using System;
using Quartz;
namespace MyProject.MyJobService
{
[UnitOfWork]
public class SimpleJob : IJob, ITransientDependency
{
public async Task Execute(IJobExecutionContext context)
{
Console.WriteLine("Hello from quartz job!");
}
}
}
更多信息和讨论可以在这里找到(也是我最终如何得出这个解决方案):https ://github.com/aspnetboilerplate/aspnetboilerplate/issues/3757
如有疑问,请仔细阅读 Quartz 在应用程序输出中告诉您的内容 - 它通常会提供有关问题所在的线索,但我相信我的解决方案会为您工作
推荐阅读
- python - 在 Python 中创建的 bash 文件中的引号
- scala - 前缀跨度输出格式
- oracle - sql developer和存储过程之间的输出不一致
- python - Charmap 编解码器字符编码错误
- sql - 修改 SQL 中的 JSON 字符串(日期时间条目)
- rust - 在没有 std 的情况下将 *mut u8 转换为 &[u8]
- git - 获取有关具有多个 VCS 根的触发器的拉取请求信息
- ios - 将 int 转换为字符串
- mongodb - Spring Mongodata 聚合查询
- javascript - 如何通过 JavaScript 异步加载 URL?