Tôi có nhân viên Sidekiq hoạt động tốt tại địa phương, nhưng khi triển khai cho Heroku, công việc bị kẹt trong hàng đợi. Tôi đang sử dụng Redis-to-go nano và có nó lên và chạy, và tôi đã thu nhỏ nhân viên thành 1 trên Heroku và có thể thấy rằng nó đang hoạt động. Tôi chỉ sử dụng hàng đợi mặc định - không có gì tùy chỉnh hoặc ưa thích. Đây là mã của tôi:Công việc Sidekiq bị kẹt trong hàng đợi trên Heroku
config/unicorn.rb:
Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end
config/initializers/redis.rb
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])
Procfile
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -c 5 -v -q default
tôi có thể thấy được công việc trong hàng đợi nhưng nó không được xử lý giống như nó cục bộ. Bất kỳ lời khuyên nào đều được đánh giá cao - cảm ơn!
Hãy thử chạy 'Heroku chạy console' và chạy công việc của bạn đồng bộ 'SomeWorker.new .perform (some_arg) ', nó có thể là một lỗi và được lên lịch lại. – Ollie
Xin chào, cảm ơn bạn đã phản hồi nhanh. Chạy trong bảng điều khiển heroku thực hiện các hành động tôi mong đợi (tức là nó tạo ra một người dùng mới với các thông số chính xác); tuy nhiên, tôi không thể thấy bất kỳ bằng chứng nào cho thấy nó hoạt động trong giao diện người dùng web Sidekiq - tức là nó không được xử lý. Có suy nghĩ gì không? –
Một khi tôi nhận được nó để làm việc từ console heroku, chỉ cần ra khỏi tò mò tôi đã cố gắng để chạy công việc đồng bộ từ bên trong ứng dụng của tôi .... Nhưng công việc vẫn gặp khó khăn trong hàng đợi mặc dù tôi đang đi chính xác cùng một đối số . –