2017-08-01 13 views
0

この質問は、Djangoのベストプラクティスとアドバイスを中心に詳しく説明しています。Djangoのユーザーに電子メールレポートをスケジュールする最良の方法

基本的に、私は2つのイベントでトリガされるようにDjangoの上、電子メールレポートをスケジュールする:

  • いくつかの統計で毎週レポートの電子メール、ニュースなど
  • レポートは、システム内のイベントでトリガ(すなわち保存モデル上)

これは、スケジュールされたタスクを介してDjangoで直接行う必要がありますか?または、他に使用できるツールがありますか?

答えて

1

毎週スケジュールされたタスクに関して、最も簡単なアプローチは、新しいカスタム管理コマンドを作成し、そのコマンドをcronまたはWindowsのタスクスケジューラが呼び出すようにすることです。これは、実際には、すでに他の可能なオプションと一緒にあなたが考慮するために、ここに答えがあります。

Django - Set Up A Scheduled Job?

注:virtualenvのを使用している場合は、cronのはpythonを介して管理コマンドを呼び出す持っていることを確認してくださいシステムパスのものではなく、virtualenvのバイナリです。あなたのモデルにpost-save signalのリスナーを設定することができ

  • :アプリケーションイベントや条件に基づいてトリガー・アクションについては

    、2つの思考。信号が受信されると、電子メールは受信者を介して送信される可能性があります。信号hereを読むことができます。

  • Djangoのsend_mail電子メールラッパーは、あなたの視点で直接使用することができるほど簡単です。
+0

お返事ありがとうございます。私はすでに異なるケイデンスのスケジュールされたタスクを数多く持っているので、このアプローチが存在することを認識しています。しかし、Djangoでこの種のレポートを行うのが最善であるかどうか、そして/またはそうでない場合、Djangoをトリガーしてインターフェースをとるためのレポートツールをどのようにフックしますか? – NickP

+0

これは、正確に何を報告したいかによって大きく異なる場合があります。もう一度、OSやサードパーティのツールからDjangoアプリケーションへの最も基本的で簡単な「方法」は、管理コマンドによるものだと思います。あなたは、外部ツールを介してデータベースにレポートしたいものを書き込んだり、Djangoを使ってレポートをフォーマットして配信することができます。 – trpt4him

関連する問題