Найти - Пользователи
Полная версия: отправка почты в отдельном потоке+завершение запроса
Начало » Django » отправка почты в отдельном потоке+завершение запроса
1
Evg
Вообщем есть некоторое действие которое дергается через аякс, у этого действия есть ноутификация по емайл, чтобы запрос не ждал отправки почты я пытаюсь вынести отправку в отдельный поток, но ничего не отправляется, те я подозреваю что завершается запрос и за ним питон схлопывает поток, а тот не успевает отправить емайл.. так ли это? подскажите как лучше делать?
выносить задачи в отдельную таблицу в бд, и запускать их кроном, либо можно както заставить не умирать поток все же..

def some_view(request):
...
def gogo():
send_mail(...)

from threading import Thread
t = Thread(target=gogo,args=())
t.start()
...
Александр Кошелев
Evg
выносить задачи в отдельную таблицу в бд, и запускать их кроном,
только так
slav0nic
попробуй
t.setDaemon(True)
t.start()
ибо у тебя при завершении работы вьюхи тред тоже отмирает
Evg
почему-то не помогло(

хотя судя по документации
The entire Python program exits when no alive non-daemon threads are left.
должно было помочь..
Evg
Вообщем все работает!

прсото внутри метода gogo использовал называние переменой t которая держит шаблон, а она потом переопредеоиоась
t = Thread(target=gogo,args=())

из-за этого выкидывалось исключение

Кстати работает и без setDaemon, но оставлю для спокойствия
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB