【发布时间】:2019-05-07 23:35:16
【问题描述】:
如何从 Heroku 调度程序调用 rake 任务?
我需要调用命令rake sitemap:refresh(来自外部库)
# scheduler.rake
task :sitemap_refresh => :environment do
Rails.application.eager_load!
Rake::Task['-s sitemap:refresh'].invoke
end
【问题讨论】:
-
你为什么要使用 Heroku 调度器?
-
@SNeumann 有没有更好的方法来定期安排 rake 任务?
-
取决于您的用例。您可能希望使用从代码中调用的更可靠的后台工作程序,或者使用基于 cron 的调度程序,例如 Cron To Go,它的工作原理与 Heroku 调度程序基本相似,但具有更多的调度控制、更好的可靠性和手动运行任务的选项好吧(我隶属于 Cron To Go)。
-
你可以在我的回答中使用代码stackoverflow.com/a/64570936/2529330