我使用 hangfire.io 库安排作业,我可以观察到它正在内置仪表板中进行处理。但是,我的系统要求可以从仪表板取消作业。
有一个删除正在运行的作业的选项,但这只会改变数据库中作业的状态,不会停止正在运行的作业。
我在文档中看到有一个选项可以通过,IJobCancellationToken
但是据我了解,它用于在整个服务器关闭时正确停止作业。
有没有办法以编程方式取消已经运行的任务?
我是否应该编写自己的组件来定期提取数据库并检查当前服务器实例是否正在运行已被取消的作业?例如维护字典 jobId -> CancellationTokenSource,然后使用适当的令牌源发出取消信号。