Вызов активной работы используя Gemever - PullRequest
0 голосов
/ 04 июня 2019

Вот активная работа:

# app/jobs/upload_evidence_job.rb

class UploadEvidenceJob < ApplicationJob
  queue_as :default

  def perform(*args)
    UploadRequest.pull_messages
    ...
  end
end

Вот мой всякий файл конфигурации:

set :output, "log/cron_log.log"
env :PATH, ENV['PATH']

every 1.minutes do
  runner 'UploadEvidenceJob.perform_later'
end

Я запускаю следующую команду для записи в cron, которая работает нормально.

$ whenever --update-crontab --set environment=development

Проблема в том, что задание не вызывается из cron, тогда как оно работает из консоли rails.

Я думаю, что активные задания не загружаются в случае cron, мне нужно require где-нибудь?

1 Ответ

1 голос
/ 04 июня 2019

Сначала убедитесь, что cron runner вообще работает - в среде cron все по-другому, потому что нет сеанса оболочки. Например - если вы используете RVM - вам нужны ruby ​​binstubs и может быть полный путь к команде bundle. Затем попробуйте вручную запустить сгенерированную команду cron (см. crontab -l для пользователя, с которым вы работаете, когда он ниже)

Также каждую минуту раскручивать рельсы только для того, чтобы поставить задачу в очередь - это не очень оптимально, вы можете использовать sidekiq-scheduler (если вы используете sidekiq) или другой планировщик ruby ​​для этого

...