0

私のdjangoアプリケーションでは、django-notification通知の送信に使用しています。ただし、場合によっては(複数の通知を送信する場合)、Webアプリケーションの応答が遅れることに気づきました。mailtools私はAjaxリクエストを介して通知を送信していますが、スレッド化された電子メールを提供するライブラリを実装できればそれでも最善だと思います。

誰かがそのようなことを実装しましたか?簡単ですか?ThreadedMailerからどのように使用できmailtoolsますdjango-notificationか?

または、別の選択肢はありますか?

4

1 に答える 1

2

この目的にはCeleryを使用してください。djangoでのセットアップは簡単で、現在使用しているコードを使用できます。

ajaxリクエストは、メールをタスクキューに入れて返します。タスクが成功したかどうかを後で確認したい場合は、タスクIDを返すことができます。

アップデート:

Celeryでは、バックグラウンドで関数を呼び出すことしかできません。あなたが呼んだajaxビューで言います:

send_email(…)

ここで、tasks.py関数を定義する必要があります。

@task
def send_email(…)

そして、ビューでは、次のように呼び出します。

send_email.delay(…)

以上です。電子メールは、既存のPythonコードを使用してバックグラウンドワーカーデーモンによって送信されます。

django-notificationこれは時代遅れにはなりません。セロリは完全に異なることを行い、想像できるあらゆるライブラリで使用できます。

唯一の変更点は、タスク引数を選択可能にする必要があることです。これは、オブジェクト全体ではなく、dbidを渡す必要があることを意味します。

于 2012-11-26T08:32:48.640 に答える