Resque kontra Sidekiq? [Zamknięte]


127

Obecnie używam Resquedo mojego procesu w tle, ale ostatnio słyszałem wiele huff-buffów o sidekiq. Czy ktoś mógłby porównać / rozróżnić?

W szczególności chciałbym wiedzieć, czy istnieje sposób programowego monitorowania, czy praca jest zakończona w sidekiq


71
Jestem tak podekscytowany widząc, że to pytanie nie zostało zamknięte jako „nieodpowiednie dla SO”.
— Dogweather

51
Czy możemy przestać zamykać wszystkie dobre pytania, proszę ludzi. Wiem, że jest dość szeroki, jest też dość ważny i całkiem interesujący.
— superluminary

19
Pewnego dnia wymyślą stronę, na której programiści będą mogli zadawać pytania, a ta strona będzie zezwalać na subiektywne odpowiedzi. Pytania, które można zignorować, a nawet głosować na podstawie trafności.
— baash05,

4
@ baash05 i będzie się nazywać Quora!
— nakhli

6
Będzie się nazywać Yahoo Answers, a jakość będzie gwałtownie spadać.
— halfer

Odpowiedzi:


130

Resque:

Plusy:

Cons

  • uruchamia proces na pracownika (zużywa więcej pamięci);
  • nie ponawia prób zadań (w każdym razie po wyjęciu z pudełka).

Sidekiq:

Plusy

  • uruchamia wątek na pracownika (zużywa znacznie mniej pamięci);
  • mniej rozwidlenia (działa szybciej);
  • więcej opcji po wyjęciu z pudełka.

Cons

  • [ogromny] wymaga zabezpieczenia wątków twojego kodu i wszystkich zależności . Jeśli uruchamiasz kod niebezpieczny dla wątków z wątkami, prosisz o kłopoty;
  • działa na niektórych rubinach lepiej niż na innych (zaleca się jruby, wydajność na MRI jest zmniejszona z powodu GVL (globalna blokada VM)).

19
Skąd wiesz, że używasz „niebezpiecznego wątku kodu”?
— Dogweather

4
Na przykład, jeśli przechowujesz stan w zmiennych globalnych, masz kłopoty :) Jeśli chodzi o klejnoty, oto kilka na wiki .
— Sergio Tulentsev

25
@mrbrdo Nic bardziej mylnego. GVL nie ma nic wspólnego z bezpieczeństwem wątków twojego kodu ruby. GVL dotyczy bezpieczeństwa wątków kodu interpretera ruby ​​(kod MRI C).
— radarek

2
Muszę zaprzeczyć określeniu „pro” w Resque, które mówi „możesz użyć dowolnego rubinu”. Dzisiejszy plik README dla Resque faktycznie mówi: „Chcielibyśmy wspierać rubiny inne niż MRI, ale mogą mieć błędy”. github.com/resque/resque/blob/master/README.md#requirements
— JellicleCat,

2
Szczególnie unikałbym Sidekiqa, jeśli planujesz uruchamiać JavaScript w swoich zadaniach przy użyciu wskaźnikaruby. Nie jest to wina Sidekiqa jako takiego, ale wielowątkowość powoduje problemy na rurze. Zobacz github.com/cowboyd/therubyracer/issues/206
— Jeremy Burton

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.