2016-11-03 9 views
0

Я пытаюсь запустить пример Sidekiq в кристалле, но я получил сообщение об ошибке в журнале Sidekiq:Crystal with Sidekiq У меня есть ошибка. Что я делаю неправильно?

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> ЦСИ> 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> ЦСИ> ok_photos.cr

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

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

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

Что я делаю неправильно?

+1

Возможно, это проблема с пространством имен. Можете ли вы попробовать без пространства имен? –

+0

@SerdarDogruyol Спасибо, ваш комментарий был очень полезен. Существует проблема с пространствами имен. Если вы хотите увидеть мой комментарий под ответом Майка. Я действительно не могу понять, почему ... – nobilik

ответ

2

Вы показываете код клиента, но не код сервера. Сервер не требует вашего пространства имен Sample, поэтому он не знает, как выполнить задание.

+0

Спасибо Майку. Я глупо решил, что мой монстр Sidekiq, установленный в Rails, может продолжить эту работу. Теперь все работает нормально. Но, я не знаю почему, проблема с пространствами имен. 'require './src/sample" 'не работает, но' require' ./sample/workers "работает отлично. То же самое с моим кодом проекта: require '. ./ok_photos/*" 'и'. ./ok_photos/** "' дает мне ошибку 'uninitialised constant Sample', но с' require './sample/workers "' it пробеги. – nobilik