Очередь заданий заполнена - PullRequest
1 голос
/ 30 марта 2011

Я использую очередь задач для отправки пользователям напоминаний о будущем.Каждая задача очень мала, но каким-то образом эта ситуация произошла, и мое приложение не работает: enter image description here

Есть идеи, что может вызвать это?

Обновление

Всего через 30 минут я получаю совершенно другой отчет.enter image description here

Количество «Заданий в очереди» почти одинаково, но «Число сохраненных задач в очереди» неожиданно значительно меньше.: o

Просто чтобы было ясно, что я сделал:

  • Я удалил задачу «Удаление», которая использовала много ЦП, но имела только 16 небольших задач.это, так что это не должно было сильно повлиять на размер очереди.

  • Обнаружено исключение, которое происходит, когда вы пытаетесь добавить задачу в полную очередь.Это не должно влиять на количество добавляемых задач.

  • Просматривать Reddit в течение получаса.Это исправило это.

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

Звучит так, будто в коде вашей очереди заданий есть «бомба-вилка».

Если вы добавляете задачи в задачу, вы можете случайно создать огромное количество задач, если после добавления задачи возникает исключение. Исходная задача повторяется, новая задача добавляется снова (и, возможно, создает собственную бомбу), исключение вызывается снова, задача повторяется и т. Д.

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

Бретт Слаткин рассказывает об этом в одной из своих лекций по Google I / O ( здесь в 7:58).

2 голосов
/ 31 марта 2011

У меня была эта проблема, но я поставил в очередь несколько тысяч задач за короткое время.Если вы чувствуете, что в вашем коде нет ничего плохого, просто увеличьте квоту для байтов задач, хранящихся в очереди задач.Включите эти строки в свой queue.yaml, чтобы изменить квоту

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