heroku上的rails 3.2应用程序能在后台任务运行时保持连接存活吗?



Heroku杀死运行超过30秒的动态进程。有些任务可能需要一分钟左右的时间。

我们通过延迟作业在后台运行这些任务。当后台任务完成时,在Foo模型中设置一个task_is_done标志。

让用户的浏览器每10秒检查一次task_is_done是否为真,这样用户的视图就会随着任务的进程而定期更新,并且我们避免长时间运行任务的heroku超时,最好的方法是什么?

(一种蛮力方法是使用元标记告诉浏览器每10秒重新加载页面,并让该页面的控制器检查task_is_done的状态。)除了代码臭气,它也不能在每个浏览器上工作。

我将在浏览器中使用jquery并使用setInterval每10秒调用一次ajax来检查标志。下面是setInterval的一个例子:https://stackoverflow.com/a/8081078/2680964

最新更新