Как заставить Ruby запускать какую-то задачу каждые 10 минут? - PullRequest
6 голосов
/ 21 августа 2010

Я хотел бы выполнять работу cron каждые 10 минут, но моя система работает только 1 час. Поэтому я ищу способ сделать это. Я видел Timer и sleep, но я не уверен, как это сделать или, что еще лучше, ресурс для достижения этого.

Ответы [ 2 ]

4 голосов
/ 21 августа 2010

Взгляните на http://rufus.rubyforge.org/rufus-scheduler/

rufus-scheduler - это Ruby-гем для планирования фрагментов кода (заданий).Он понимает выполнение задания в определенное время, в определенное время, КАЖДЫЙ раз или просто с помощью оператора CRON.rufus-scheduler не заменяет cron / at, поскольку он работает внутри Ruby.

2 голосов
/ 21 августа 2010

Чтобы сделать это надежно, инвестируйте в VPS и создайте 10-минутную работу cron по желанию.Попытка эмулировать cron all по своему усмотрению может привести к непредвиденным последствиям.

Создание спящего процесса - это не тот способ;если ваш сервер не дает вам свободу создавать свой собственный cron, как вам нравится, вы, вероятно, также не сможете создать свой собственный фоновый процесс для такого рода вещей.При каждом запросе вы можете посмотреть, сколько работ нужно выполнить (если прошло 25 минут с момента последнего запроса, вам может потребоваться выполнить две), и вернуться назад и выполнить их задним числом.*

Но, серьезно.Вам нужен собственный сервер, чтобы сделать это надежно.

...