2010-08-21 15 views
6

Chciałbym wykonać zadanie cron co 10 minut, ale mój system ma tylko godzinę. Więc szukam metody, aby to zrobić. Widziałem, Timer i sleep, ale nie jestem pewien, jak to zrobić, a jeszcze lepiej jeszcze zasobu do osiągnięcia tego.Jak sprawić, by Ruby uruchamiał jakieś zadanie co 10 minut?

+0

Skąd będziesz wiedzieć, kiedy skończysz tańczyć? (http://en.wikipedia.org/wiki/Minuet) – JasonFruit

+0

Nie ma załoga aparatu, ale w zasadzie to, co robi jest dodanie kanałów RSS i tam jest „entries_total” atrybut, który jest aktualizowany i informuje, całkowita liczba kanałów coraz dodany. – s84

Odpowiedz

4

Spójrz na http://rufus.rubyforge.org/rufus-scheduler/

rufus-scheduler to klejnot Ruby na kawałki planowania kodu (Praca). Rozumie wykonywanie pracy W OCZEKIWANIU pewnego czasu, W OCZEKIWANIU czasu, KAŻDEGO x czasu lub po prostu za pośrednictwem oświadczenia CRON. rufus-scheduler nie zastępuje cron/at, ponieważ działa wewnątrz Ruby.

+0

wygląda na to, że może działać. Wrócę do tego. – s84

+0

Nie użyłem tego sam, ale wziąłem kilka pomysłów z niego podczas tworzenia harmonogramu zadań z node.js. Kod wygląda dobrze i myślę, że będzie dla ciebie odpowiedni. Też: http://adam.heroku.com/past/2010/4/13/rethinking_cron/ – grm

+0

widzę, że ten artykuł również wspomnieć: http://github.com/bvandenbos/resque-scheduler – grm

2

Aby to zrobić niezawodnie, zainwestuj w VPS i stwórz 10-minutową pracę crona według potrzeb. Próba naśladowania crona sama w sobie jest bardzo prawdopodobna w nieprzewidziany sposób.

Tworzenie procesu spania to nie jest sposób, aby to osiągnąć; Jeśli twój serwer nie daje ci wolności do tworzenia własnych cronów, jak ci się podoba, prawdopodobnie nie będziesz mógł stworzyć własnego procesu w tle dla tego typu rzeczy. Na każde żądanie możesz sprawdzić, ile zadań zostało wykonanych (jeśli upłynęło 25 minut od ostatniego żądania, być może trzeba zrobić dwie), a następnie wrócić i wykonać je z mocą wsteczną.

Ale, poważnie. Aby to zrobić, potrzebujesz własnego serwera.

+0

nie ma powodu, aby ponownie kierować kołem, zwłaszcza biorąc pod uwagę, jak szeroko stosowany, wytrzymały i dojrzały jest cron. +1 –