1

ビューで複数のメールを送信したい。私が必要としているのは、そのビューが応答を送り返し、バックグラウンドで電子メールを送信することです。

私が走るとき

return EmailMultiAlternatives(subject,
                             t,
                             sender,
                             recipients,
                             bcc=bcc).send()

ビューは、電子メールを 1 つか 2 つ送信するまで応答を送信しません。

理由を聞きたい

    yield EmailMultiAlternatives(subject,
                             t,
                             sender,
                             recipients,
                             bcc=bcc).send()

命令は私の電子メールを送信しません?? yield が思いどおりに動作しないのはなぜですか?

4

1 に答える 1

1

Django フレームワーク ( TornadoTwistedとは異なり) は同期/ブロック モードで動作し、ビューはすべてを完了するまで応答を返しません。

メールが送信されるのを待ちたくない場合は、celeryおよびdjango-celeryパッケージを検討してください。タスクを定義し、ビューからキューに入れ、応答を返し、ワーカーが「バックグラウンドで」ジョブを実行できるようにします。

また、参照してください。

それが役立つことを願っています。

于 2013-08-02T12:53:51.990 に答える