LPgenerator / django-db-mailer

Django module to easily send emails/sms/tts/push using django templates stored on database and managed through the Django Admin
https://github.com/LPgenerator/django-db-mailer
GNU General Public License v2.0
256 stars 80 forks source link

ERROR/MainProcess] Task dbmail.send_db_mail[] raised unexpected: TimeLimitExceeded(30,) #11

Closed AlexDev1 closed 9 years ago

AlexDev1 commented 9 years ago

В проекте все настроил, вызываю send_db_mail('test','test',{'test': 'test test test bla bla bla',},) Celery запускал : python manage.py celeryd --loglevel=info -Q default Ошибка 2015-04-29 00:59:27,489: ERROR/MainProcess] Task dbmail.send_db_mail[b740194b-d707-44d5-9bc2-8ebc479b6d28] raised unexpected: TimeLimitExceeded(30,) Traceback (most recent call last): File "/home/dev/.virtualenvs/portal/lib/python2.7/site-packages/billiard/pool.py", line 641, in on_hard_timeout raise TimeLimitExceeded(job._timeout) TimeLimitExceeded: TimeLimitExceeded(30,) [2015-04-29 00:59:27,490: ERROR/MainProcess] Hard time limit (30s) exceeded for dbmail.send_db_mail[b740194b-d707-44d5-9bc2-8ebc479b6d28]

Перезапустил python manage.py celeryd --time-limit=7200 -E --loglevel=DEBUG В дебаге на каждую задачу идет запросы ко всем таблицам База очень большая и в итоге сам celery зависает на каждой таск

gotlium commented 9 years ago

давайте больше деталей. я не могу помочь решить проблему. для начала я вижу что на почту test уйти что-то по сути не может. во вторых где-то стоит тайм лимит в 30 сек. что по сути даже много. у нас на хайлоаде стоит искусственное ограничение в 5 секунд. этого хватает для любого провайдера. ну и запроса ко всем таблицам просто теоритечески быть не может. ведь батарейка работает со своими моделями. тут нужен конкретный дебаг. какая джанга? какие запросы? какое тело письма? что передается в качестве реальных моделей или аргументов? какой питон? какая селедка? какой провайдер? какой брокер? покажите полный стейк трейс. лучше отдебажить используя pdb с места старта таска(use_celery =False). ну и желательно показать какие настройки использовались. есть вероятность что были переданны все значения таблицы. такой суровый баг у нас встречался. когда данные не могли передаться + перебор 200к+ записей в БД выпадал по таймауту.

AlexDev1 commented 9 years ago

Неверно указал порт на смтп авторизации у яндекса, при этом и получалось задерка