2015-06-09 4 views
1

У меня есть мнение, как»Джанго сельдерей отправить несколько писем

def MyView(request): 
    SendMyMail(args) 

и мой SendMymail является:.

def SendMymail(args): 
    send_mail(title, content, sender, receiver) 

Здесь я хочу сообщение в очередь процесс отправки, если есть так много сообщений я прошли через документ сельдерея и поняли базу.

Я видел во многих примерах люди создают файл task.py, где они определяют задачу с периодом. Тогда я хочу знать, что писать.

Может кто-нибудь дать мне четкий пример того, как это можно сделать отправки нескольких сообщений

+1

Вы ничего не пишете в представлении - сельдерей использует задачи в файле tasks.py. В документах сельдерея есть все, что вам нужно. – professorDante

+0

Должен ли я использовать побочный эффект сельдерея или сельдерея, чтобы отправить сотни писем. Что такое различие между celeryd и celery beat – gamer

+0

celeryd позволяет выполнять задачи асинхронно, celerybeat позволяет периодически запускать задачи, например cron. Вы всегда будете использовать celeryd, вы можете использовать celerybeat, если хотите, но вам не нужно. – professorDante

ответ

1

ОК, я дам вам пример, чтобы вы собираетесь. Используйте сельдерей для отправки асинхронной почты.

def my_view(request): 

    from tasks import celery_send_mail 

    user = request.user 
    <some_stuff> 
    celery_send_mail.delay(user.email) 
    <keep_going> 
    return render(request) 

затем в tasks.py

@celery_app.task(ignore_result=True) 
def celery_send_email(email): 
    <send_your_mail> 

Чтобы использовать celerybeat, вы можете настроить задачу периодически запускать из файла celery.conf, или использовать приложение стороннего, чтобы помочь, я использую django-celery, поскольку вы можете установить периодические задания у администратора.

+0

Можете ли вы дать мне какой-нибудь пример периодической задачи. Я имею в виду, когда использовать периодическую задачу, а также когда использовать асинхронную задачу – gamer

+0

вся цель сельдерея - запускать задачи async - это есть, они работают ортогонально с основным потоком и, таким образом, не прерывают его. Как и в моем примере выше, почта отправки будет порождать другой поток, и основной поток будет продолжать работать. Периодической задачей будет то, что вы хотите запускать в определенное время каждый день/неделю/месяц. Например, обновление цены акций. – professorDante

Смежные вопросы