在后台任务运行时,heroku上的rails 3.2 app可以保持连接活动吗?

时间:2014-03-19 18:30:10

标签: ruby-on-rails heroku

Heroku杀死一个超过30秒的dyno进程。我们的一些任务可能需要一分钟左右。

我们通过延迟工作在后台运行此类任务。完成后,后台任务在Foo模型中设置task_is_done标志。

如果task_is_done为真,用户浏览器每10秒检查一次的最佳方法是什么,因此用户的视图会在任务处理过程中定期更新,并且我们避免长时间运行任务的heroku超时?

(暴力方法是使用元标记告诉浏览器每10秒重新加载一次页面,并让该页面的控制器检查task_is_done的状态。除了代码恶臭,它还不适用于所有浏览器。)

1 个答案:

答案 0 :(得分:0)

我会在浏览器中使用jquery并进行ajax调用,每隔10秒检查一次标志utlizing setInterval。 setInterval的一个示例如下:https://stackoverflow.com/a/8081078/2680964