繁体   English   中英

如何在asp中每天运行cron job。 净核心应用?

[英]How to run cron job every day in asp. Net core application?

我有一个用 asp 编写的 web 应用程序。 净MVC核心2.2。 O 需要每天凌晨 3:00 运行计划作业。 最好的方法是什么?

我试过 hangfire 一段时间后它停止了。 我们需要设置 IIS 服务器一直运行。 我用谷歌搜索并找到了 .Net Core 中的托管服务。 谁能告诉我每天在 dot.net core 的 web 应用程序中运行作业的最佳方法是什么?

老实说,我没有亲自为 .NET Core 尝试过,但是您尝试过Quartz Scheduler吗? https://www.quartz-scheduler.net/通过这篇文章,您似乎也可以将它与 .NET Core 一起使用

您可以使用Hangfire

您可以使用 CRON 模式创建重复出现的 function。

RecurringJob.AddOrUpdate(() => Console.Write("Powerful!"), "0 12 * */2");

此处提供文档。

你可以使用EasyCronJob (免责声明:我是这个包的作者)

services.ApplyResulation<TCronJob>(options =>{
 options.CronExpression = "* * * * *";
 options.TimeZoneInfo = TimeZoneInfo.Local;});

此处提供的文档

Quartz.Net 有一个轻量级替代方案: CronScheduler.AspNetCore

我过去和当前项目都使用过 Quartz.Net,这是一个不必要的复杂库。 对于没有数据库的简单使用,请尝试 CronScheduler.AspNetCore。

   services.AddScheduler(ctx =>
    {
        ctx.AddJob<TestJob>();
    });

或更复杂的注册:

 services.AddScheduler(ctx => { var jobName1 = "TestJob1"; ctx.AddJob( sp => { var options = sp.GetRequiredService<IOptionsMonitor<SchedulerOptions>>().Get(jobName1); return new TestJobDup(options, mockLoggerTestJob.Object); }, options => { options.CronSchedule = "*/5 * * * * *"; options.RunImmediately = true; }, jobName: jobName1); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM