rails-5 active_job sidekiq не может отправить / добавить работу непосредственно в очередь с именем redis - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь добавить работу непосредственно в 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 }
...