Search code examples
sidekiqcrystal-lang

Crystal with Sidekiq I've got an error. What I'm doing wrong?


I'm trying to run an Sidekiq example in Crystal, but I've got an error in Sidekiq log:

2016-11-03T13:18:22.430Z 19329 TID-uvtuk WARN: {"queue"=>"default", "jid"=>"84853f6ac0bf8d434ec0beee", "class"=>"Sample::MyWorker", "args"=>["world", 3], "created_at"=>1478179102.4277496, "enqueued_at"=>1478179102.4281816, "retry"=>true}
2016-11-03T13:18:22.430Z 19329 TID-uvtuk WARN: NameError: uninitialized constant Sample

ok_photos>src>ok_photos>workers.cr

require "sidekiq"
module Sample
  class MyWorker
    include Sidekiq::Worker

    def perform(name : String, count : Int64)
      count.times do
        logger.info "hello, #{name}!"
      end
    end
  end
end

ok_photos>src>ok_photos.cr

require "./ok_photos/*"
require "sidekiq"

Sidekiq::Client.default_context = Sidekiq::Client::Context.new

Sample::MyWorker.async.perform("world", 3_i64)

What I'm doing wrong?


Solution

  • You are showing the client code but not the server code. The server isn't requiring your Sample namespace so it doesn't know how to execute the job.