我想生成定期报告并将其发送给用户。
用户应该能够选择发送的频率和日期/时间(例如,每天9.00,星期一,每周等),以及与报告内容本身相关的其他信息。
您认为在Django中集成它是一个很好的解决方案吗?
答案 0 :(得分:0)
如果您使用的是unix系统,我建议您使用cron(unix作业调度程序)进行此操作。
您可以使用django-cron,一个包装cron作业调度的Django模块 但我通常会将任务编写为django custom management command,并安排一个常规的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文件
即可