【发布时间】:2025-12-08 11:05:03
【问题描述】:
我正计划使用 rake 任务为我的 rails 应用程序开发一个长时间运行的后台进程。 rake 任务是否适合这种流程?理想情况下,我希望将它包装在一个 linux 守护进程中,以便能够轻松地启动和结束进程。
如果这不是最佳选择,还有哪些选择?我试图避免使用基于 cron 的解决方案,以避免担心时间表以及同一进程的不同运行实例在它们之间重叠的可能性。
谢谢!
【问题讨论】:
-
这取决于您的需求,但类似 cron 的工作通常由名为 god 的 gem 处理:godrb.com
-
它将处理什么样的工作?
-
@retro 它将更新汇总表,检索新的和更新的记录以重新计算平均值、总计和总和。
-
这真的取决于运行时间和你的服务器资源。这种方法的最大问题是你的整个 Rails 应用程序将在 rake 任务期间和期间加载到内存中。持续时间可能是 100/200+ mb ram。任务可能运行多长时间?
-
@DamienRoche,我还不知道。这将取决于要处理的数据量。我的想法是让 Windows 服务之类的东西不间断地运行,在执行之间休眠(如 30 秒或 1 分钟)。我不介意它消耗多少内存,因为我想尽可能多地使用 rails:活动记录、验证等。
标签: ruby-on-rails ruby-on-rails-4 rake-task