【问题标题】:Calling Active Job Using Whenever Gem使用 When Gem 调用活动作业
【发布时间】:2019-10-19 22:48:14
【问题描述】:

这是一个活跃的工作:

# 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 它吗?

【问题讨论】:

    标签: ruby-on-rails ruby cron whenever rails-activejob


    【解决方案1】:

    首先确保 cron 运行器完全正常工作 - 在 cron 环境中是不同的,因为没有 shell 会话。例如 - 如果您使用 RVM - 您需要 ruby​​ binstubs 并且可能是 bundle 命令的完整路径。 然后尝试手动运行生成的 cron 命令(请参阅 crontab -l 了解您正在运行的用户)

    还每分钟旋转一次 Rails 只是为了让作业入队 - 不是非常理想,您可以使用 sidekiq-scheduler(如果您使用 sidekiq)或其他 ruby​​ 调度程序来这样做

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 2016-03-01
      • 2015-02-15
      相关资源
      最近更新 更多