【问题标题】:Is loading a route via cron, curl and the whenever gem going to cause problems?通过 cron、curl 和 when gem 加载路由会导致问题吗?
【发布时间】:2012-12-12 01:42:31
【问题描述】:

我需要在我的 rails 应用程序中定期运行后台任务。我做了一些研究,似乎没有标准的方法来做到这一点。

我不想生成新的应用上下文,所以跑步者似乎是不可能的。如果不需要,我宁愿不运行我自己的线程处理程序。 (看起来这可能是目前除了以下之外最有希望的选择)。

使用无论何时我在 schedule.rb 中执行以下操作:

every 15.minutes do
    command "curl http://127.0.0.1:3000/periodic"
end

这感觉有点像 hack,但我找不到比这更直接的东西了——我能找到的所有其他东西似乎都是为了看似基本的东西付出了很多努力。

我应该注意,这是一个内部项目,将位于防火墙和无头自动化中间件之后,因此用户直接访问此项目的期望很低。

我是否遗漏了什么,或者后台处理或定时事件真的只是不支持开箱即用的 rails 吗?

【问题讨论】:

  • A cron job for rails: best practices? 的可能重复项(阅读所有答案,而不仅仅是接受的答案 - 特别是排名最高的第二个答案)
  • 谢谢阿马丹。第二个是我特别不想要的——每次发生这种情况时都要重新加载整个环境。我已经在使用任何时候了,我是否遗漏了其他明显的东西?这个问题已经被否决了两次,而不是投反对票,如果有更多有用的回答会很好。即使我看起来像个无知的人,我也可以接受——我真的不知道。 =)
  • 请阅读meta.stackexchange.com/questions/32490/…。接近投票不是反对票。这是一种关闭由于各种原因而无法回答的问题的机制 - 有些好,有些不好。作为一个重复的问题被关闭并没有什么可耻的——这是一个很好的问题,但是对于 StackOverflow 的卷,一遍又一遍地回答同样的事情是没有意义的。另一方面,由于“不是真正的问题”而关闭表示您提出了一些问题……嗯,愚蠢,或者问题写得不够好。反对票是不同的
  • 感谢阿马丹的澄清。据我了解,您链接的 SO 问题(甚至是第二个答案)并没有真正让我到达我想去的地方。我不想在调用它时有效地重新启动我的 Rails 应用程序——我想保留我当前的上下文。我是否误解了它的工作原理?
  • 嗯,我错过了那部分。我想你可以创建一个after_initializerailtie,然后在那里启动一个线程......

标签: ruby-on-rails ruby cron whenever


【解决方案1】:

经过一番研究,Amadan 对铁路的建议可能会让我得到我想要的。作为一个理想的解决方案,它并不完美,尽管取决于上下文(即一个可公开访问的 Rails 项目),这是要走的路。对于我正在处理的项目,它有点笨拙,因为我正在做一个 Rails 应用程序,它是两个系统之间的桥梁,无头运行,防火墙后面没有用户输入。

【讨论】:

    猜你喜欢
    • 2017-06-20
    • 2014-07-08
    • 2013-04-17
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多