Ruby on Rails 中后台作业、rake 任务和 cronjobs 之间的区别?

问题描述 投票:0回答:1

我刚刚开始探索 Rails 中的 rake 任务和 cronjobs。我对它们之间的比较以及在哪种情况下对你来说是什么感到困惑。据我所知,后台作业是在应用程序运行时生成的,而任务是我们通过命令行运行的。 假设我们正在使用 cronjob 创建用户记录,我们可以通过后台作业以及简单任务来完成此操作。 非常感谢您分享知识!!.

ruby-on-rails ruby cron scheduled-tasks jobs
1个回答
9
投票

Rake 任务 只是使用 Rake DSL 在 Ruby 中实现的脚本或小程序。在 Ruby on Rails 应用程序的上下文中,Rake 传统上用于“构建”某些内容或管理依赖项的任务。常见示例包括数据库迁移、临时文件清理、备份和部署。但总的来说,rake 任务几乎可以用于所有事情,甚至与应用程序相关,例如数据迁移、触发电子邮件等。

A Cron job 是类 Unix 操作系统上的作业调度程序(参见 Wikipedia)。它用于在特定时间(例如每天 12:00 或每个月的第一天)或以特定时间间隔(每 10 分钟)启动重复作业。 Cron 只是一个调度程序,它可以在特定时间启动各种命令行脚本,例如 Rake 任务、数据库备份或系统检查。

Ruby on Rails 中的

后台作业通常使用 ActiveJobSidekiq 实现。您可以安排作业在特定时间运行或在创建后立即运行。它们比 Rake 或 Cron 更接近您的应用程序,并使用 Ruby on Rails 类直接在应用程序中实现。每当用户触发某个任务时,您就可以使用后台作业,该任务可能需要很长时间才能完成 Web 请求,而可以异步完成。例如,发送电子邮件、从外部 API 提取数据以及在用户更改数据后进行复杂的计算。另一个用例是可能失败并且应该重试几次的任务。

Tl;dr 使用

Rake 任务 – 当您想编写一个小脚本来管理我们的应用程序时。当您想要定期运行脚本或任务时,请使用Cron 任务。使用 后台处理 在应用程序中异步执行任务,以加快 Web 请求速度。

© www.soinside.com 2019 - 2024. All rights reserved.