2012-11-03 22 views
19

Tôi không quen thuộc với nội bộ của Sidekiq và tự hỏi có ổn không khi khởi chạy một số phiên bản Sidekiq với cùng cấu hình (xử lý cùng một hàng đợi).Có thể nhiều trường hợp sidekiq xử lý cùng một hàng đợi

Có thể 2 hoặc nhiều trường hợp Sidekiq sẽ xử lý cùng một thông điệp từ hàng đợi không?

UPDATE:
tôi cần phải biết nếu có một cuộc xung đột có thể, khi chạy Sidekiq trên hơn 1 máy

+0

Tại sao bạn muốn làm điều đó? Lợi thế của sidekiq trên resque được cho là đa luồng, vì vậy chỉ cần một quá trình. – Thilo

+1

Tôi cần biết nếu có xung đột có thể xảy ra, khi chạy Sidekiq trên hơn 1 máy. Nó không phải là một câu hỏi về luồng so với quy trình. – Jacob

+3

@Thilo, ngay cả trên một máy tính duy nhất, trong khi "chỉ có một quá trình là cần thiết" mà giới hạn việc sử dụng CPU đến 100% của một lõi đơn, giới hạn tốc độ xử lý hàng đợi. Tôi có một máy 8 lõi và muốn siekiq sử dụng 4 lõi với công suất tối đa, vì vậy tôi cần 4 quy trình. –

Trả lời

39

Vâng, sidekiq hoàn toàn có thể chạy nhiều quá trình chống lại cùng một hàng đợi. Redis sẽ chỉ gửi thông điệp đến một quá trình ngẫu nhiên.

+0

Các sự cố có thể xảy ra nếu các phiên bản khác nhau chạy cùng một truy vấn vào những thời điểm rất giống nhau (hoặc điều đó có ý nghĩa gì), ví dụ như gửi biểu mẫu kép ngẫu nhiên? –

+1

Lỗi có thể xảy ra nhưng Sidekiq được thiết kế để đồng thời. Mã ứng dụng có nhiều khả năng bị lỗi với một cú nhấp đúp. –

7

Không, tôi đã chạy Sidekiqs trong các máy khác nhau mà không có vấn đề gì.

Mỗi Sidekiq được đọc từ cùng một máy chủ redis và redis rất mạnh mẽ trong các tình huống đa luồng và phân phối.

Ngoài ra, nếu bạn nhìn vào giao diện web cho Sidekiq, nó sẽ hiển thị tất cả các nhân viên trên tất cả các máy vì tất cả các nhân viên đều đăng nhập vào cùng một máy chủ redis.

Vì vậy, không, không có vấn đề gì.

+3

điều này thật thú vị. Tôi có một số máy chủ Sidekiq chạy từ các máy khác nhau, và mặc dù chúng tiêu thụ các công việc một cách chính xác từ hàng đợi Redis, tôi không thấy các quy trình ở một máy khác với ứng dụng Rails của tôi hiển thị trong giao diện người dùng. Bạn có phải đặt bất kỳ cấu hình đặc biệt nào để làm như vậy không? – Nobita

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