Разбить работу приложений cron на меньшие куски? - PullRequest
1 голос
/ 13 августа 2010

У меня есть задание cron, которое разбирает # RSS-каналов. Оказывается, это занимает слишком много времени, поэтому я получаю ошибку HardDeadlineExceededError. Я попытался просто создать две задачи cron: одну, которая анализирует четные каналы, другую, которая анализирует нечетные каналы, но я все еще получаю ошибку.

Какой лучший способ разбить эту работу, чтобы она помещалась в 30-секундном окне?

Ответы [ 3 ]

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

Я рекомендую использовать Очередь заданий - задача может выполнить любое количество N подзадач по вашему выбору, при этом убедитесь, что вы приблизились, но не слишком близко к жесткому -deadline, затем он порождает другую задачу, чтобы продолжить там, где остановился спавнер.

1 голос
/ 13 августа 2010

Увеличьте количество заданий, чтобы уменьшить количество каналов на задание.Не только два сегмента (нечетный и четный), но больше (номер фида MOD x), пока он не уместится в окне.

Если это не работает (слишком много заданий cron), взгляните на очереди задач.Таким образом, задание cron может вытолкнуть задание в очередь, может быть, одно задание на канал.

0 голосов
/ 19 августа 2010

В итоге я создал простой объект хранилища данных, который отслеживает, какой RSS-канал я анализировал последним. Я анализирую один канал RSS и увеличиваю переменную каждый раз, когда запускается задание cron.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...