2013-06-20 33 views
27

Sidekiq đã hoạt động ở chế độ phát triển hoàn hảo. Bây giờ tôi đang cố gắng sử dụng nó trong sản xuất, tất cả các công việc chỉ là ngồi trong enqueue và không bao giờ được chạy. Bất cứ ai có thể chỉ cho tôi đi đúng hướng như thế nào để giải quyết vấn đề này?Công việc Sidekiq bị kẹt trong enqueue

+1

Tôi cho rằng bạn đang chạy ít nhất một nhân viên phụ trách sản xuất? – cthulhu

+0

Vâng, tôi tin như vậy. Chính xác ý của bạn là gì? Tôi đã bắt đầu Sidekiq bằng cách chạy lệnh sau: bundle exec sidekiq -d -L/path/to/log. Và có một cuộc gọi không đồng bộ đến một nhân viên tôi đã tạo trong mã Rails của tôi. – groffcole

+1

những gì trong nhật ký của bạn? bạn có thấy quy trình sidekiq không? (ps aux | grep sidekiq) có gì trong giao diện điều khiển sidekiq của bạn? – cthulhu

Trả lời

25

Hãy kiểm tra xem quá trình sidekiq đang thực sự chạy:

ps aux | grep sidekiq 

Nếu nó không phải là, cố gắng chạy sidekiq trong foreground đầu tiên và kiểm tra đầu ra.

bundle exec sidekiq -e production 
+0

Vì vậy, đơn giản, nhưng rất chính xác. Trong trường hợp cụ thể của tôi, tôi đã cấu hình sai tệp công nhân và đã giết quá trình sidekiq –

1

Câu trả lời này trông có liên quan: Sidekiq not processing queue Nếu Sidekiq không cho biết về tập tin cấu hình (có thể đòi hỏi một câu thần chú khác nhau trong sản xuất), sau đó nó có thể không được sử dụng hàng đợi đúng.

+0

Đó thực sự là trường hợp của tôi – Deano

1

Giải pháp của tôi:

1.) Nhìn vào Sidekiq Web UI cho ứng dụng của bạn (đây là nơi mà bạn có thể thấy một thực tế rằng công việc đang đi vào một trạng thái enqueued).

2.) Bằng tay thử một công việc thất bại

3.) Kiểm tra các bản ghi trên máy chủ chạy Sidekiq:

(nói chung đây là nơi mà các bản ghi sẽ được bố trí, nếu nói rằng bạn đang làm điều này trên dàn)

tail -f /var/www/yourappname/current/log/staging.log 

Đây thường là nơi bạn sẽ thấy thông báo lỗi chi tiết hơn về lý do tại sao Sidekiq không thể xử lý các công việc enqueued. Trong trường hợp của chúng tôi, có một biến môi trường trỏ đến một điểm cuối không chính xác cụ thể cho cấu hình triển khai của chúng tôi.

1

Trong nhiều trường hợp đối với tôi nó là bởi vì tôi đã không khai báo đúng hàng đợi cho dịch vụ cụ thể này trong config/sidekiq.yml.

Các vấn đề liên quan