Resque vs Sidekiq? [đóng cửa]


127

Tôi hiện đang sử dụng Resquecho quá trình nền của mình nhưng gần đây tôi đã nghe rất nhiều về huff-buff về sidekiq. Bất cứ ai có thể so sánh / phân biệt?

Đặc biệt tôi muốn biết có cách nào để theo dõi lập trình xem công việc có được hoàn thành hay không sidekiq


71
Tôi rất hoang mang khi thấy rằng câu hỏi này chưa được đóng lại là "không phù hợp với SO".
Dogweather

51
Chúng ta có thể ngừng đóng tất cả các câu hỏi tốt xin vui lòng mọi người. Tôi biết nó khá rộng, nó cũng khá quan trọng và khá thú vị.
siêu sáng

19
Một ngày nào đó họ sẽ phát minh ra một trang web nơi các lập trình viên có thể đặt câu hỏi và trang web đó sẽ cho phép các câu trả lời chủ quan. Các câu hỏi có thể bị bỏ qua, hoặc thậm chí bỏ phiếu dựa trên mức độ phù hợp.
baash05

4
@ baash05 và nó sẽ được gọi là Quora!
nakhli

6
Nó sẽ được gọi là Câu trả lời của Yahoo và chất lượng sẽ giảm mạnh.
tạm dừng

Câu trả lời:


130

Resque:

Ưu điểm:

  • không yêu cầu an toàn luồng (hoạt động với khá nhiều đá quý ngoài kia);
  • không có sở thích phiên dịch (bạn có thể sử dụng bất kỳ viên hồng ngọc nào);
    Resque hiện hỗ trợ MRI 2.3.0 trở lên
  • tải các plugin.

Nhược điểm

  • chạy một tiến trình trên mỗi công nhân (sử dụng nhiều bộ nhớ hơn);
  • không thử lại công việc (dù sao ra khỏi hộp).

Sidekiq:

Ưu

  • chạy luồng trên mỗi worker (sử dụng ít bộ nhớ hơn);
  • ít rèn hơn (hoạt động nhanh hơn);
  • nhiều lựa chọn hơn trong hộp.

Nhược điểm

  • [rất lớn] yêu cầu an toàn luồng của mã của bạn và tất cả các phụ thuộc . Nếu bạn chạy mã không an toàn của luồng với các luồng, bạn sẽ gặp rắc rối;
  • hoạt động trên một số viên ruby ​​tốt hơn những viên khác (khuyến nghị jruby, hiệu quả trên MRI bị giảm do GVL (khóa VM toàn cầu)).

19
Làm thế nào để bạn biết nếu bạn đang chạy "mã không an toàn"?
Dogweather

4
Ví dụ: nếu bạn đang lưu trữ trạng thái trong các biến toàn cục, thì bạn sẽ gặp rắc rối :) Đối với đá quý, đây là một số trong wiki .
Sergio Tulentsev

25
@mrbrdo Bạn không thể sai nhiều hơn. GVL không liên quan gì đến an toàn luồng của mã ruby ​​của bạn. GVL là về an toàn luồng của mã trình thông dịch ruby ​​(mã MRI C).
radarek

2
Tôi phải mâu thuẫn với 'pro' trên Resque nói rằng 'bạn có thể sử dụng bất kỳ viên hồng ngọc nào'. README cho Resque ngày hôm nay thực sự nói rằng 'Chúng tôi rất thích hỗ trợ các Rubies không MRI, nhưng chúng có thể có lỗi.' github.com/resque/resque/blob/master/README.md#requirements
JellicleCat

2
Tôi đặc biệt tránh Sidekiq nếu bạn dự định chạy JavaScript trong công việc của mình bằng cách sử dụng trị liệu. Không phải lỗi của Sidekiq mỗi se nhưng đa luồng gây ra vấn đề cho trị liệu. Xem github.com/cowboyd/therubyracer/issues/206
Jeremy Burton

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.