2012-07-01 13 views
6

Używam klejnotu sidekiq do przetwarzania zadań w tle w Railsach. Z jakiegoś powodu zadanie po prostu się zawiesi po pewnym czasie - proces albo przestaje reagować, pojawia się na top, ale niewiele więcej, albo w tajemniczy sposób znika, bez błędów (nic nie zgłoszono do airbrake.io).Dłuższe zadania Sidekiq wciąż umierają

Czy ktoś miał z tym doświadczenie?

Odpowiedz

1

Ja doświadczyłem tego, i nie znalazłem przyczynę rozwiązania/root.

Nie mogłem rozwiązać tego w sposób czysty, ale wymyśliłem hakera.

Skonfigurowałem Boga, aby monitorował moje procesy Sidekiq i aby je ponownie uruchomić, jeśli plik się zmienił.

Następnie ustawiłem zadanie Cron, które działało co 5 minut, które sprawdzało wszystkich obecnych pracowników Sidekiq w kolejce. Jeśli pewien% pracowników miał w przeszłości czas rozpoczęcia < = 5 minut, oznaczało to, że pracownicy zostali zawieszeni z jakiegoś powodu. Jeśli tak się stało, dotknąłem pliku, który sprawił, że Bóg ponownie uruchomił Sidekiq. Dla mnie 5 minut było idealne, ale zależy to od tego, jak długo zwykle pracujesz.

Jest to jedyny sposób, w jaki mogę rozwiązać problemy z zawieszaniem zadań Sidekiq bez ręcznego sprawdzania ich co godzinę i restartowania.

+2

Czy mógłbyś udostępnić ten skrypt? –