2012-03-26 24 views
13

Jestem zainteresowany prowadzeniem bardzo długiego zadania prowizji, które wymagałoby wielu godzin i chciałbym poznać najlepsze praktyki radzenia sobie z tym problemem.Radzenie sobie z bardzo długim zadaniem prowizji

Możliwe rozwiązania znalazłem:

  1. Skonfiguruj crona
  2. delayed_job
  3. Resque

cron wydaje się to proste rozwiązanie w konfiguracji, ale to jest idealny dla bardzo długie zadanie? Czego używasz i jakie są zalety/wady twojego rozwiązania?

Odpowiedz

30

Osobiście uwielbiam Resque, można użyć klejnotu harmonogramu resque do zadań długotrwałych lub okresowych.

Jeśli nie musisz często wykonywać swojego zadania, możesz demonizować zadanie rake, aby upewnić się, że działa dalej, jeśli twoja sesja SSH zginie lub coś.

Spróbuj czegoś takiego:

nohup rake my:task & 

nohup wyśle ​​wyjście do nohup.out w katalogu uruchomić zadanie, a także pozwolić opuścić sesję ssh bez proces umierania, po drugie & będzie działać to jako demon.

+0

Wygląda na to, że idealnie spełni moje potrzeby. Mam zamiar pozostawić to pytanie otwarte na trochę czasu, zanim zaakceptuję słuchanie innych pov. Dzięki! –

+0

Brak prob! Mam nadzieję, że znajdziesz rozwiązanie, którego szukasz! Napisz rozwiązanie, gdy je znajdziesz! –

1

W jednej aplikacji, którą utworzyłem, użytkownicy mieli możliwość przesyłania plików PDF, które zostały miniaturą po przesłaniu, aby utworzyć obrazy podglądu. Ponieważ pliki PDF mogą być bardzo duże, miniaturowanie może zająć trochę czasu i musi działać w tle. Aby to zrobić, użyłem

  • Paperclip na przesyłanie,
  • delayed_paperclip klejnot do ręki off miniatur na proces w tle,
  • Resque, poparte Redis, aby obsługiwać kolejkę pracownika, a
  • klejnot God, aby uruchomić pracowników Redis i Resque i monitorować cały program.

Po stronie plusów otrzymujesz świetny GUI Resque, który pozwala obserwować swoich robotników w akcji, i masz tam Boga, który może obserwować (i zabijać i uruchamiać ponownie) niekontrolowane procesy (które zdarzają się często nieco, gdy przetwarzasz pliki PDF w ImageMagick), dzięki czemu całość jest bardziej stabilna i niezawodna.

Po stronie ujemnej jest to o wiele trudniejsze do skonfigurowania niż zadanie cron. Ale posiadanie crona działającego długo, wymagającego dużej pamięci procesu, który nie jest monitorowany, wydaje mi się receptą na katastrofę.

Nadzieję, że pomaga!

Powiązane problemy