在Heroku Scheduler上运行Rails Rake任务作为分离,以捕获Papertrail中的日志输出

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

在Heroku上运行Rails Rake任务的一个已知问题是,由于一次性dynos默认将其输出推送到控制台,因此他们不会将其日志提交给Papertrail。这可以通过使用heroku run:detached rake your:task以“分离”模式运行你的dyno来解决。不幸的是,Heroku Scheduler似乎会自动正常运行任务而不是分离模式,因此这些日志会丢失。

如何使调度程序以“分离”模式运行任务,以便这些每周/每日/每小时任务按预期获取Papertrail捕获的日志?

ruby-on-rails logging heroku rake papertrail-app
1个回答
0
投票

你可以使用sidekiq,这个gem可以帮助你按计划运行任何进程,在你的sidekiq里面你可以运行rake任务!

https://github.com/mperham/sidekiq

例:

class MySidekiqTask
  include Sidekiq::Worker

  def perform
    application_name = Rails.application.class.parent_name
    application = Object.const_get(application_name)
    application::Application.load_tasks
    Rake::Task['db:migrate'].invoke
  end
end

好的指导如何在Heroku服务器中设置Sidekiq

https://itnext.io/sidekiq-overview-and-how-to-deploy-it-to-heroku-b8811fea9347

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