首页 > 解决方案 > 耙子任务没有在红宝石中调用工人工作

问题描述

我已经使用 sidekiq 定义了一个 rake 任务和一个工人工作,如下所示。rake 任务没有调用工人作业。请帮我找出我的问题。

Office.rake

namespace :office do
  desc "send reminder emails"
  task send_reminder: :environment do
    Office.all.each do |office|
      (office.issues.includes(:billings).where("issues.api_accounts_receivable > 0").select { |issue| (issue.billings.last.date < Message.last.date) if issue.billings.present? }).each do |issue|
        puts "Issue ID is #{issue["id"]}"
        ReminderWorker.perform_async("#{issue["id"]}")  
      end
    end
  end
end

提醒工人.rb

class ReminderWorker
  include Sidekiq::Worker
  def perform(issue_id)
    puts issue_id
  end
end

puts 不会在工作人员的终端中显示 issue_id 的输出,但是当我从终端调用rake office:send_reminder时,会显示 rake 任务中提到的“Issue ID is #{issue["id"]}”的输出。

标签: ruby-on-railsrubysidekiq

解决方案


我发现了我的错误。我没有打开sidekiq服务器。


推荐阅读