ruby-on-rails - 耙子任务没有在红宝石中调用工人工作
问题描述
我已经使用 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"]}”的输出。
解决方案
我发现了我的错误。我没有打开sidekiq服务器。
推荐阅读
- postman - 如何从收到的响应中设置一些数据,女巫格式是邮递员中的 TEXT
- python - 变量未定义,但我不知道为什么
- spring-boot - @SpringBootTest 中的 JavaAgent
- c# - iText7在C#的段落中添加图像
- python - 我需要在 php 中使用相同的 python 命令
- wordpress - 如何将 GTM 代码添加到 header.php 但之后已经有其他代码?
- javascript - 如何在 JavaScript 中对对象集合进行自然排序?
- mysql - java - 如何在Java查询的选择子句中使用extractvalue函数编写HQL选择查询?
- python - 在 tkinter 画布小部件类中嵌入 matplotlib 图
- dns - 如何将家用计算机和家庭网络变成具有 dns 的服务器以将域指向它