Hangfire 可以在不重新部署的情况下处理计划任务的更改吗

Ret*_*mer 6 c# model-view-controller hangfire

我一直在 Microsoft MVC 应用程序中使用 Hangfire。我已经用它来编译和安排“即发即弃”任务,但令我惊讶的是,我无法在程序运行时添加/删除作业。Hangfire是否真的无法在运行时动态调度任务?是否有一个众所周知的框架,即使在应用程序已编译或部署之后,也允许人们安排任务,而无需每次要添加任务时都更改 C# 代码?

我也研究过Quartz.NET,似乎也有同样的问题。

编辑:

Windows 任务计划程序可以允许使用 GUI 来计划任务,UNIX 的 cron 可以通过编辑文件来添加或删除任务,但我正在寻找某种在 Windows 上运行的应用程序,允许用户添加或删除任务应用程序部署后。我不想每次要添加或删除任务时都重新编译应用程序。

Mar*_* L. 4

正如所问的,这个问题似乎源于对“动态......在运行时”含义的误解。答案是“是的”,它可以更改任务而无需重新部署(但这似乎不是您真正想要的)。

如果您进行配置,Hangfire 会将仪表板 UI 添加到您的应用程序中,但它本身并不是端到端任务管理应用程序。它旨在为您的应用程序提供能够安排工作,并以与调用点非常脱节的方式完成该工作——甚至可能无法在同一台机器上完成。

它仅限于调用 .NET 代码,但根据定义这满足了您所声明的“在运行时动态调度任务”的要求。这可以响应应用程序中您喜欢的任何事件来完成。任务也可以被删除、更新和取消。

编辑后)你是对的:任何调度 UI 或任务文件格式的反序列化都必须你自己编写。如果您正在寻找一个为您提供 UI 和/或任务文件 OOTB 的工具,您可能需要升级到JAMS等商业产品。(免责声明:这甚至可能本身不具备您需要的功能——我没有使用该产品的直接经验,但与我共事的人都以积极的态度提到过它)。