Я пытаюсь добавить работу непосредственно в Redis, и она выдает ошибку ниже:
WARN: NoMethodError: undefined method `split' for nil:NilClass
2018-11-03T00:45:14.826Z 31 TID-gst0yl4s0 WARN:
/usr/local/bundle/gems/sidekiq-5.0.3/lib/sidekiq/processor.rb:233:in ` constantize'
Это команда, которую я выполняю:
msg = {
arguments: [{
'_aj_globalid' => 'gid://app-name/Article/25'
},
[{name: 'jamis'}]
],
'job_class' => 'ImporterJob',
'job_id' => SecureRandom.uuid,
'queue_name' => 'importer_job'
}
redis.lpush("queue:importer_job", JSON.dump(msg) )
Это терпит неудачу, и следующая попытка, показанная ниже, также терпит неудачу:
msg = {
args: [{
arguments: [{
'_aj_globalid' => 'gid://app-name/Article/25'
},
[{name: 'jamis'}]
],
'job_class' => ImporterJob,
'job_id' => SecureRandom.uuid,
'queue_name' => 'importer_job'
}]
}
redis.lpush("queue:importer_job", JSON.dump(msg) )
Я попробовал это с обоими классами работы ниже и получаю ту же ошибку:
class ImporterJob < ActiveJob::Base
queue_as :importer_job
def perform(data)
puts "datis #{data}"
end
end
Это использует обычный работник Sidekiq
class ImporterJob
include Sidekiq::Worker
sidekiq_options queue: 'importer_job'
def perform(data)
puts "datis #{data}"
end
end
msg = { "class" => 'UbiquityCsvImporterJob',
"queue" => 'ubiquity_csv',
"args" => values,
'retry' => true,
'jid' => SecureRandom.hex(12),
'created_at' => Time.now.to_f,
'enqueued_at' => Time.now.to_f }