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!
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! –
Brak prob! Mam nadzieję, że znajdziesz rozwiązanie, którego szukasz! Napisz rozwiązanie, gdy je znajdziesz! –