yuzd / Hangfire.HttpJob

httpjob for Hangfire,restful api for Hangfire,job调度与业务分离
https://github.com/yuzd/Hangfire.HttpJob/wiki
MIT License
634 stars 186 forks source link

提问:调度没有准时执行? #38

Closed ctacy closed 4 years ago

ctacy commented 4 years ago

我新增了一个周期性调度,设置为每日00:00(cron:0 0 0 ?)执行。但是并没有在00:00执行调度,有时候是在在06:30执行了,有时候是在我打开dashboard后立即执行的。请问是不是需要一直用浏览器打开dashboard才能正常运行呢?

ctacy commented 4 years ago

1

yuzd commented 4 years ago

如果你的job正在执行 或者执行错误(设置了重试)。这个时候你关闭了job调度服务。再次重启的时候会重新执行。这个场景就会造成没有按照实际时间执行,不知道你是不是这样的情况

ctacy commented 4 years ago

如果你的job正在执行 或者执行错误(设置了重试)。这个时候你关闭了job调度服务。再次重启的时候会重新执行。这个场景就会造成没有按照实际时间执行,不知道你是不是这样的情况

我就是添加了一个周期性调度,然后关闭了dashboard页面,间隔时间短的话会准时执行,比如1个小时之类的,具体多久我没有测试;但是时间隔太久的话,就不会执行,比如我上午创建了每日00:00执行,然后关闭dashboard页面。到了指定时间不会执行。

我怀疑是iis应用程序池回收机制导致,有尝试设置回收时间为0,经过一天测试,暂时可行;

我的疑问是:如果要调度正常执行,是不是必须得一直开启dashboard页面?

yuzd commented 4 years ago

》我的疑问是:如果要调度正常执行,是不是必须得一直开启dashboard页面? 不用的,dashbord只是一个工具让你查看job的执行情况,调度是后台代码执行的。和你开不开dashbord没有关系。 另外建议不要放在iis部署。建议放在windows服务部署

如果放在iis 也得要配置一下 让iis程序池不要回收