Эдво, батарейку знаешь какую нить зачетную?
Форум → Программирование → Python → Батарейки → Django email queue
Django email queue
Страницы: ← Следующая страница →
-
-
-
Март 8, 2014, 1:10 п.п., спустя 4 минуты 14 секунд
@Sinkler, подъебун ты несчастный :D
Сапожник без сапог -
Март 8, 2014, 1:11 п.п., спустя 56 секунд
@Sinkler, подъебун ты несчастный :D
@phpdude, молчи, твой день восьмое марта :D
Спустя 12 сек.
а, сегодня же -
Март 8, 2014, 1:15 п.п., спустя 4 минуты 15 секунд
@Sinkler, ебать ты шутишь на упад
Сапожник без сапог -
-
-
Март 8, 2014, 1:36 п.п., спустя 1 минуту 19 секунд
не понимаю я ваш таиландский юмор, короче
@Sinkler, ты и русские не понимаешь)
Сапожник без сапог -
Март 8, 2014, 1:42 п.п., спустя 5 минут 35 секунд
не поверите как я увидел что на пыхе нет gzip для html :D
увидел как сообщения один за другим отображаются с моим ужасным интернетом)))
Сапожник без сапог -
Март 8, 2014, 1:45 п.п., спустя 3 минуты 2 секунды
Я обычно велосипедил, чтобы можно было по полной кастомайзить. Иногда за основу брал celery и rabbitmq, но чаще просто в текущей БД
https://smappi.org/ - платформа по созданию API на все случаи жизни -
Март 8, 2014, 1:53 п.п., спустя 7 минут 40 секунд
Я обычно велосипедил, чтобы можно было по полной кастомайзить. Иногда за основу брал celery и rabbitmq, но чаще просто в текущей БД
@adw0rd,
не наш путь)
Сапожник без сапог -
Март 8, 2014, 1:59 п.п., спустя 6 минут 30 секунд
Ну у меня не было проекта по глобальной рассылке писем, это всегда нужно было чтобы самому проекту рассылать письма и обычно они ходили через пул гугла, регалось N учеток (так как квоты по 500 писем через ящик в день) и все это так и работало
https://smappi.org/ - платформа по созданию API на все случаи жизни -
Март 8, 2014, 2:01 п.п., спустя 1 минуту 33 секунды
@adw0rd, понятно.
ну фишка не в рассылке, а в том, что в общем то send_mail работает медленно(либо неуправляемо) по очевидной причине.
Хочется какой то большей управляемости в уходящей корреспонденции. Хотя бы ошибки наблюдать + минимальный retry.
Сапожник без сапог -
Март 8, 2014, 2:33 п.п., спустя 32 минуты 36 секунд
Темку создал)
Спустя 21 сек.
тьфу блин, подразделСапожник без сапог -
Март 9, 2014, 6:55 п.п., спустя 1 день 4 часа 21 минуту
Обошелся через celery короче (без всей этой хуйты с django-celery, повозкой багов гребаных) :-)
Щас почта уходит асинхронно и это охуенно, отклик от страниц моментальный (чего и требовалось конечно же).
Работает с celery 3.1+, они там серъезно поменяли интеграцию с django. Щас поддерживают жангу из коробки, в обход django-celery.
https://gist.github.com/phpdude/9448981 This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersfrom celery import shared_task from celery.contrib.methods import task_method from django.core.mail.backends.smtp import EmailBackend as BaseEmailBackend class FakeLock(object): __enter__ = lambda x: None __exit__ = lambda a, b, c, d: None class EmailBackend(BaseEmailBackend): """ A wrapper that manages the SMTP network connection asynchronously """ def __init__(self, *args, **kwargs): super(EmailBackend, self).__init__(*args, **kwargs) # fake lock object, because base methods use this # celery doesn't support base RLock class serialization. Fixing it. self._lock = FakeLock() def send_messages(self, email_messages): self._send_messages.apply_async((self, email_messages)) return len(email_messages) @shared_task(filter=task_method, name="send_emails") def _send_messages(self, email_messages): return super(EmailBackend, self).send_messages(email_messages) This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters# Path to class in your environment EMAIL_BACKEND = 'project.portal.backends.asyncemail.EmailBackend' # Don't forget add backend module to celery configuration, because it is not placed in app.tasks module and need to be defined. CELERY_IMPORTS = ['project.portal.backends.asyncemail'] # json doesn't support serialization for python objects, only simple types. CELERY_TASK_SERIALIZER = 'pickle' Сапожник без сапог
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!