我在instruction之后创建了自定义后台作业。
您还可以看到discussion regarding this problem。
每分钟都会调用创建的任务处理程序和任务构造函数。从不调用过程方法。另外我得到超时异常“Orchard.Tasks.BackgroundService - 处理后台任务时出错”。
有趣的是,可以添加新任务,但任何查询都不起作用。
我检查了表Scheduling_ScheduledTaskRecord,它被锁定了。我在代码和SQL管理界面中遇到超时异常。一旦我关闭网站流程,锁就会被释放。
答案 0 :(得分:1)
您正在描述在后台运行的计划任务。 为了触发Process的执行,你需要缩减第一个任务(从而启动循环)。使用 DateTime.UtcNow 来安排任务。
您也可以这样使用后台任务:
public class MyBackgroundService : IBackgroundTask {
public MyBackgroundService() {
}
public void Sweep() {
//Background task execution
//DO some work
}
}
Sweep()将每60秒执行一次。我不知道这是否适合您,因为即使上一个任务仍在运行,这也会每分钟执行一次。