【发布时间】:2018-07-12 18:33:47
【问题描述】:
我正在寻找在 Heroku 中运行非常长的任务的最佳方法。
我将 Ruby On Rails 用于我的 Web 应用程序,我有一个很长的任务,我想在每周日的晚上运行它。大约需要15~20分钟。我已经有Rufus-Scheduler,但我不确定它是否是最有效的解决方案。
我还通过Delayed Job 找到了一些关于Backgrounding Tasks in Heroku 的信息。但这是最好的处理方式吗?
谢谢。
【问题讨论】:
-
后台最适合由您网站的用户触发的任务,即您的 Rails 应用程序需要启动一些与请求-响应周期异步完成的工作的情况。这比仅仅运行一个独立于您的网络应用程序的每周任务(例如使用 Cron 或 Rufus-scheduler)要复杂得多。您对 Rufus-scheduler 有什么保留意见?从表面上看,这似乎是一个不错的方法。
-
感谢您的回答和对什么是背景的解释。在用户(理论上)不使用该应用程序的期间,我使用 Rufus-scheduler 更新一些大数据。但只要15-20分钟就可以了。那么,如果我在基于 Heroku 的生产环境中使用 Rufus-Scheduler 来完成如此大的任务,会不会有问题? (目前免费版)
-
我认为这不是问题。如果您担心它会使用过多的系统资源,请尝试通过分批执行任务来减慢它的速度,并在每批之间进行睡眠或其他操作。
标签: ruby-on-rails ruby heroku background-process