Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » отправка почты в отдельном потоке+завершение запроса [RSS Feed]

#1 Июнь 2, 2009 08:15:20

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

отправка почты в отдельном потоке+завершение запроса

Вообщем есть некоторое действие которое дергается через аякс, у этого действия есть ноутификация по емайл, чтобы запрос не ждал отправки почты я пытаюсь вынести отправку в отдельный поток, но ничего не отправляется, те я подозреваю что завершается запрос и за ним питон схлопывает поток, а тот не успевает отправить емайл.. так ли это? подскажите как лучше делать?
выносить задачи в отдельную таблицу в бд, и запускать их кроном, либо можно както заставить не умирать поток все же..

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

from threading import Thread
t = Thread(target=gogo,args=())
t.start()
...



Отредактировано (Июнь 2, 2009 08:16:24)

Офлайн

#2 Июнь 2, 2009 09:45:42

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

отправка почты в отдельном потоке+завершение запроса

Evg
выносить задачи в отдельную таблицу в бд, и запускать их кроном,
только так



Офлайн

#3 Июнь 2, 2009 10:09:29

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

отправка почты в отдельном потоке+завершение запроса

попробуй

t.setDaemon(True)
t.start()
ибо у тебя при завершении работы вьюхи тред тоже отмирает

Офлайн

#4 Июнь 2, 2009 12:40:54

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

отправка почты в отдельном потоке+завершение запроса

почему-то не помогло(

хотя судя по документации

The entire Python program exits when no alive non-daemon threads are left.
должно было помочь..



Офлайн

#5 Июнь 2, 2009 12:49:43

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

отправка почты в отдельном потоке+завершение запроса

Вообщем все работает!

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

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

Кстати работает и без setDaemon, но оставлю для спокойствия



Отредактировано (Июнь 2, 2009 12:51:44)

Офлайн

  • Начало
  • » Django
  • » отправка почты в отдельном потоке+завершение запроса[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version