【发布时间】:2012-09-30 17:46:00
【问题描述】:
我正在使用Sidekiq 进行后台工作:
我有一个工作应用程序/workers/data_import_worker.rb
class DataImportWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(job_id,file_name)
begin
#Some logic in it .....
end
end
从文件 lib/parse_excel.rb 调用
def parse_raw_data
#job_id and #filename are defined bfr
DataImportWorker.perform_async(job_id,filename)
end
一旦我从我的操作中触发它,工作人员就不会被调用。Redis 正在 localhost:6379 上运行
知道为什么会发生这种情况。环境是 Linux。
【问题讨论】:
-
sidekiq 正在运行吗?它在日志中说了什么?你检查redis,作业是否添加到队列:默认?
-
@Roman:谢谢回复!是的,sidekiq 和 redis 都在运行 .. 作业也没有添加到默认队列中……但是当我从控制台触发作业时,它可以工作
-
也许您在开发和生产中运行时有不同的数据库或命名空间。或者设置了不同的队列。
-
@Roman:没听懂你……你能详细说明一下吗?
标签: ruby-on-rails ruby nginx passenger sidekiq