Как отслеживать журналы Whenever из приложения Dokku

Я использую Всегда в своем приложении rails, работающем на Dokku.

Я знаю, что журналы приложения можно отслеживать dokku logs appname -t.

Я знаю, что всякий раз, когда есть способ определить, где логи надо писать

Тем не менее, неясно, как указать файл журнала при запуске dokku logs или указать, когда использовать файл журнала, который обрабатывается dokku.

Кто-нибудь сталкивался с той же проблемой раньше?


person Alfredo Re    schedule 23.03.2018    source источник


Ответы (1)


У меня были проблемы с запуском dokku + в любое время.

Что я закончил делать, так это использовать crono вместо везде.

Из документации:

В настоящее время нет такой вещи, как Ruby Cron для Rails. Ну, есть Whenever, но он работает поверх Unix Cron, поэтому вы не можете управлять им из Ruby. Crono — это чистый Рубин. Он не использует Unix Cron и другие зависящие от платформы вещи. Таким образом, вы можете использовать его на всех платформах, поддерживаемых Ruby. Он сохраняет состояния заданий в вашей базе данных с помощью Active Record. Вы имеете полный контроль над процессом выполнения заданий. Это Ruby, поэтому вы можете понять и изменить его в соответствии со своими потребностями.

С crono вместо файла schedule.rb:

every 5.seconds do
  rake 'crono:hello'
end

у вас есть файл cronotab.rb:

# config/cronotab.rb
require 'rake'

Rails.app_class.load_tasks

class Test
  def perform
    Rake::Task['crono:hello'].invoke
  end
end

Crono.perform(Test).every 5.seconds

Как бегать в докку?

Просто добавьте в свой файл proc:

crono: bundle exec crono

затем

ps:scale <app> crono=1

И ваши задачи по планированию будут без проблем выполняться в вашем контейнере dokku.

person muZk    schedule 17.04.2018