【发布时间】:2016-09-20 11:18:55
【问题描述】:
我一直在 Microsoft MVC 应用程序中使用 Hangfire。我已经得到它来编译和安排即发即弃的任务,但令我惊讶的是,我无法在程序运行时添加/删除作业。 Hangfire 在运行时不能动态调度任务是真的吗?是否有一个众所周知的框架,即使在应用程序已经编译或部署之后也可以安排任务,而不必每次我想添加任务时都更改 C# 代码?
我也研究过 Quartz.NET,好像也有同样的问题。
编辑:
Windows 任务计划程序可以允许使用 GUI 计划任务,而 UNIX 的 cron 可以通过编辑文件来添加或删除任务,但我正在寻找在 Windows 上运行的某种应用程序,允许用户添加或在应用部署后删除任务。我不想每次添加或删除任务时都重新编译应用程序。
【问题讨论】:
-
我对 Quartz.NET 很熟悉,所以你的最后一句话引发了一个标志。我快速浏览了hangfire 文档,我不确定您的理解是否正确...
-
据我了解,Hangfire 可以安排任务,没问题。但仅限于您在 C# 中硬编码的任务。在 Hangfire 运行时,我还没有找到在编译后动态添加任务的方法。我在文档中没有发现 Hangfire 可以在运行时动态调度任务。
-
您的问题含糊不清。 “...在运行时动态调度任务。”这自然意味着“在运行时添加和删除新的单执行/延迟/计划任务”,Quartz 和 Hangfire 都将这样做,旨在这样做。您当然可以“在程序运行时添加/删除作业”。您似乎在要求其他东西,一种可以索引并允许您执行动态定义的代码的工具,或者来自运行时加载的库中的代码。这是一个完全不同的问题,而不是作业调度程序旨在解决 OOTB 的问题。
-
有没有一个你可以指出我的例子来表明这实际上已经完成了?我还没有发现这是真的。
-
再一次,你指的是哪个“这个”?调度作业,还是动态代码编译/加载/执行?
标签: c# model-view-controller hangfire