gpt4 book ai didi

c# - .net 核心中hangfire RecurringJob 的入口点

转载 作者:行者123 更新时间:2023-12-05 01:17:01 43 4
gpt4 key购买 nike

服务层有一个方法,我们需要用HangFire定期调用它,那么,问题来了,在asp.net core中实现RecurringJob的最佳位置在哪里?

如果configure method在 startup.cs 中是最好的,我们如何处理 startup.cs 中所需方法的所有依赖项?

我试过这个:

RecurringJob.AddOrUpdate("FixOrderJob", () => Job.FromExpression<IOrderFixerService>(x => x.FixUnknownOrder()), Cron.MinuteInterval(5));

但出现以下错误:

System.NotSupportedException: 'Anonymous functions, delegates and lambda expressions aren't supported in job method parameters: it's very hard to serialize them and all their scope in general.'

最佳答案

如果你想用 hangfire 运行一个循环作业,最好的起点是启动类。

基于 hagnfire recurrent task documentation , RecurringJob 类是 RecurringJobManager 类的外观。所以只需将 IRecurringJobManager 作为参数注入(inject)并在那里配置您的作业:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IRecurringJobManager recurringJobs)
{
//Access To HangFire dashboard : http://app_hostname/hangfire
app.UseHangfireDashboard();
app.UseHangfireServer();
//....
//....
app.UseMvc();
//....
//....
recurringJobs.AddOrUpdate("FixOrderJob", Job.FromExpression<IOrderFixerService>(x => x.FixLatestUnknownOrder()), Cron.MinuteInterval(1));
}

关于c# - .net 核心中hangfire RecurringJob 的入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51703901/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com