Heroku杀死一个超过30秒的dyno进程。我们的一些任务可能需要一分钟左右。
我们通过延迟工作在后台运行此类任务。完成后,后台任务在Foo模型中设置task_is_done
标志。
如果task_is_done
为真,用户浏览器每10秒检查一次的最佳方法是什么,因此用户的视图会在任务处理过程中定期更新,并且我们避免长时间运行任务的heroku超时?
(暴力方法是使用元标记告诉浏览器每10秒重新加载一次页面,并让该页面的控制器检查task_is_done
的状态。除了代码恶臭,它还不适用于所有浏览器。)
答案 0 :(得分:0)
我会在浏览器中使用jquery并进行ajax调用,每隔10秒检查一次标志utlizing setInterval。 setInterval的一个示例如下:https://stackoverflow.com/a/8081078/2680964