gpt4 book ai didi

ruby-on-rails - Daemon vs Runner vs Rake Tasks vs Active Job

转载 作者:数据小太阳 更新时间:2023-10-29 08:58:38 27 4
gpt4 key购买 nike

我有一个需要按以下顺序在后台(Rails 5.0.1)执行的任务列表-

  1. 下载压缩文件
  2. 从中提取 xml 文件(平均大小 ~ 400 MB)
  3. 解析(Nokogiri XML::reader)xml 文件以获取满足特定约束的记录,如果找到,将它们添加到数据库(postgres)
  4. 从数据库中检索一些电子邮件地址并向他们发送电子邮件

这需要在没有任何人工输入的情况下每天完成。现在,我正在使用 Rails runner 来完成所有这些工作,并使用 cron('Whenever' gem)来安排它。那么,使用“runner”是正确的方法吗?考虑到前端(管理面板)访问量不多,我可以使用内存密集度较低的方法吗?活跃的工作, rake ,守护进程等怎么样?

最佳答案

. rake 任务只是命名空间中的一堆代码,通过 rake 管理工具执行

. runner 在 Rails 的上下文中以非交互方式运行 Ruby 代码

.另一方面,守护进程与这两者完全不同,您可以在这里查看更多信息:http://daemons.rubyforge.org/

对于您的情况,最好使用 rake,因为它不会引导 rails “除非您成功”(运行者必须引导 rails )。

另一件事是 rake 是单线程的,所以如果你想高效地完成单个任务,你可以使用 rake,如果你有多个任务,你可以使用 worker 和工具,如 Sidekiq、Resque 和 Delayed jobs

关于ruby-on-rails - Daemon vs Runner vs Rake Tasks vs Active Job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42260752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com