我开发了一个webjob,虽然我一直在测试它,但我将其设置为手动触发。我对功能感到满意,现在我想将其设置为每30分钟运行一次。
在发布文件(webjob-publish-settings.json)中,我设置了此"runMode": "Continuous"
,并在此设置中包含了一个setings.job文件
{
"schedule": "0 */30 * * * *"
}
我最初将其设置为'copy if newer'并且我上传了webjob。在azure webjobs部分,我有一个这个webjob的列表type = continuous
,它显示了日程安排设置。
我不得不做出一些修改并再次上传,但现在状态显示“正在重启”并且计划信息已经消失。我将settings.job文件更改为“始终复制”,但计划仍然没有显示。(只是不适用)
这个过程应该如何运作?
**更新
我仍然无法让这个工作,在我的主程序文件中我有这个
Task callTask = host.CallAsync(typeof(Functions).GetMethod("CreateQueueMessage"));
callTask.Wait();
然后我有一个带有此
的webjob-publish-settings.json文件“runMode”:“OnDemand”
最后是一个带有此
的settings.job文件“schedule”:“0 0,15,30,45 * * * *”
所以我希望它现在每15分钟运行一次,但事实并非如此,时间表甚至不会出现在webjob旁边
答案 0 :(得分:1)
如果您的目标是安排一个WebJob,则不应将其部署为Continuous WebJob,这是一个非常不同的事情。连续WebJobs适用于您具有可启动且永不终止的可执行文件的情况。当你有一个exe启动,执行一个任务然后终止时,会使用触发(和预定)的WebJobs。
在连续的WebJobs中完全忽略了计划。
您每分钟都看到连续作业运行的原因是系统一直试图重新启动它,因为它希望它永远不会终止。