Несмотря на то, что вы не можете хорошо контролировать рейк-задачи, есть несколько небольших вещей, которые вы можете сделать. Одним из них является использование регистрации. Выведите время начала и окончания задач в журналы, и затем вы сможете увидеть, что происходит в течение продолжительного времени. Если вы связываете это с чем-то вроде надстройки Papertrail, то позже вы можете провести дополнительный опрос.
Что касается запуска самих заданий, есть несколько способов запуска фоновых процессов, которые зависят от того, как они должны выполняться:
Если вам нужно запускать задания по расписанию, есть несколько доступных вариантов. Во-первых, это планировщик Heroku, который довольно хорош, но не гарантирует выполнения. Обычно вы используете это для запуска грабельного задания, которое вызовет одноразовый динамо на время выполнения задания, поэтому в процессе разработки вам необходимо обеспечить максимальную эффективность этих заданий.
В качестве альтернативы, если вы смотрите на задания, которые требуют немного большего контроля или используют процесс синхронизации. По сути, это динамометр, работающий 24/7, который выполняет только другие задания с заданными интервалами и временем. Обычно это делается с помощью часового механизма. Недостатком этого подхода является то, что вам нужно постоянно платить за процесс синхронизации.
Третий подход, который может сработать, - это отложенное задание с опцией runat
, позволяющей ставить в очередь задание, которое будет выполняться в будущем (и задания могут помещаться в очередь сами). Есть несколько проблем, связанных с этим, в которых сбой может убить всю цепочку, и вам понадобится работающий полный рабочий день для их обработки.
Поэтому, чтобы минимизировать свои счета, убедитесь, что ваши рейк-задачи являются максимально эффективными и надежными, а затем выберите вариант планирования, который вам подходит. Если вы смотрите на расписание плюс созданные пользователем события, то задержка может быть лучшим вариантом. Если вы смотрите на несколько задач, выполняемых периодически, то перейдите к планировщику. Если вы планируете регулярно выполнять множество критически важных для работы заданий, выбирайте часовой механизм.
В любом случае, вы должны иметь возможность ограничить достаточное количество обработки всего одним или двумя процессами в зависимости от вашего подхода.