【问题标题】:Keep delayed job running on Heroku让延迟的作业在 Heroku 上运行
【发布时间】:2013-05-28 14:15:51
【问题描述】:
我正在连接到 Twitter 的流 API 以获取我的 Rails 应用程序的更新流,将它们添加到数据库等。
在 Heroku 上执行此操作的最佳方法是什么?现在,我正在使用delayed_job gem - 问题是作业(连接到Twitter Streaming API)在几个小时后过期。
有没有办法让工作永远运行,或者有更好的方法来做到这一点?
谢谢
【问题讨论】:
标签:
ruby-on-rails
heroku
twitter
delayed-job
【解决方案1】:
我不会做一份工作“永远运行”,因为那也意味着永远加载 CPU。
通常处理这种情况的方式是使用 cron 作业,它以特定的时间间隔(每分钟、每小时、每几天等)启动特定脚本。 )。
几乎每个虚拟主机都提供了一个简单的界面来通过其后端(例如:CPanel)设置此类 cron 作业。
如果您正在运行自己的服务器,您可能已经知道如何配置此类作业。如果不这样做,则必须查找适合您在服务器上运行的操作系统的单独设置指南……总有一种方法可以在特定时间间隔运行“作业”(即使在 MS Windows 服务器上 - 通过调度)。
如需更详细的描述和更好地了解 "cron" 是什么,您可能需要查看the "cron" article at Wikipedia ,它还提供了一些很好的示例。