定期的なレポートを作成して、ユーザーに送信してもらいたいと思います。
ユーザーは、レポートの内容自体に関連する他の情報に加えて、送信の頻度と日付/時刻(たとえば、毎日9.00、毎週月曜日など)を選択できる必要があります。
これをDjangoに統合するための良い解決策は何だと思いますか?
定期的なレポートを作成して、ユーザーに送信してもらいたいと思います。
ユーザーは、レポートの内容自体に関連する他の情報に加えて、送信の頻度と日付/時刻(たとえば、毎日9.00、毎週月曜日など)を選択できる必要があります。
これをDjangoに統合するための良い解決策は何だと思いますか?
UNIXシステムを使用している場合は、cron(UNIXジョブスケジューラ)を使用して実行することをお勧めします。
cronジョブのスケジューリングをラップするDjangoモジュールであるdjango-cronを使用できますが、私は通常、スケジュールするタスクをdjangoカスタム管理コマンドとして記述し、これを呼び出す通常のcronジョブをスケジュールします。
仮想Python環境にdjangoをインストールしている場合は、vitualenvをアクティブ化してからコマンドを呼び出すスクリプトを実行する必要があります(以下の例を参照)。
UNIXシステムでは、virtualenvを使用します。
スクリプトの例(script.sh):
#!/bin/bash
source /path/to/virtualenv/bin/activate
python /path/to/django/project/manage.py custom_command
cronに行を追加します(コマンド:) crontab -e
:
* * * * * /path/to/script.sh >> /path/to/log/file.log 2>&1
*を希望の時間と頻度に置き換えます(詳細はデフォルトのcrontabファイルにあります)
新しいスケジュールされたタスクをインストールするには、crontabファイルを保存するだけです。