我想生成定期报告并将它们发送给用户。
用户应该能够选择发送频率和日期/时间(例如每天 9 点、每周一等),以及与报告内容本身相关的其他信息。
您认为将其集成到 Django 中的一个好的解决方案是什么?
我想生成定期报告并将它们发送给用户。
用户应该能够选择发送频率和日期/时间(例如每天 9 点、每周一等),以及与报告内容本身相关的其他信息。
您认为将其集成到 Django 中的一个好的解决方案是什么?
如果您使用的是 unix 系统,我建议您使用 cron(unix 作业调度程序)来执行此操作。
您可以使用django-cron,这是一个包装 cron 作业调度的 Django 模块,但我通常将要调度的任务编写为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
将 *s 替换为所需的时间和频率(默认 crontab 文件中的详细信息)
要安装新的计划任务,只需保存 crontab 文件