是否可以使用 dotNet 使用 Hangfire 每 20 秒运行一次作业?

Posted

技术标签:

【中文标题】是否可以使用 dotNet 使用 Hangfire 每 20 秒运行一次作业?【英文标题】:Is it possible to run a Job every 20 seconds with Hangfire using dotNet? 【发布时间】:2021-09-23 05:07:49 【问题描述】:

在 dotNet 核心中使用 Hangfire,我可以使用以下表达式每 20 秒运行一次作业:

RecurringJob.AddOrUpdate(() => _anyService.GetMethodAsync(response.Data), "*/20 * * * * *");

但它不适用于 asp.net,使用:

RecurringJob.AddOrUpdate<ISmoochService>("JOB", (data) => data.GetMethodAsync(param1, param2), "*/20 * * * * *");

我收到此错误:

'*/20 * * * * *' 是一个无效的 crontab 表达式。它必须包含按分钟、小时、天、月和星期几顺序排列的时间表的 5 个组成部分。

【问题讨论】:

【参考方案1】:

Hangfire cron 表达式不支持秒数。

如果您刚刚开始您的项目,Hangfire 替代方案将是: https://www.quartz-scheduler.net/

【讨论】:

以上是关于是否可以使用 dotNet 使用 Hangfire 每 20 秒运行一次作业?的主要内容,如果未能解决你的问题,请参考以下文章

ABP官方文档翻译 7.2 Hangfire集成

Hangfire源码解析-任务是如何执行的?

让 Hangfire 使用 MongoDB 存储

开源分布式Job系统,调度与业务分离-HttpJob.Agent组件介绍以及如何使用

.NET之Hangfire快速入门和使用

如何访问失败的Hangfire作业