在Django中自动生成每日、每周和每月报告

在Django中自动生成每日、每周和每月报告,django,scheduled-tasks,Django,Scheduled Tasks,我希望生成定期报告并将其发送给用户 用户应能够选择发送频率和日期/时间(例如,每天9点,每周周一等),以获取与报告内容本身相关的其他信息 您认为在Django中集成此功能的最佳解决方案是什么?如果您在unix系统上,我建议您使用cron(unix作业调度器)进行此操作 您可以使用Django模块包装cron作业调度 但我通常将任务编写为调度,并调度一个常规的cron作业来调用它 如果在虚拟python环境中安装了django,则应该运行一个脚本,激活vitualenv,然后调用该命令(请参见下面

我希望生成定期报告并将其发送给用户

用户应能够选择发送频率和日期/时间(例如,每天9点,每周周一等),以获取与报告内容本身相关的其他信息


您认为在Django中集成此功能的最佳解决方案是什么?

如果您在unix系统上,我建议您使用cron(unix作业调度器)进行此操作

您可以使用Django模块包装cron作业调度 但我通常将任务编写为调度,并调度一个常规的cron作业来调用它

如果在虚拟python环境中安装了django,则应该运行一个脚本,激活vitualenv,然后调用该命令(请参见下面的示例)


在unix系统上,使用virtualenv:

脚本示例(script.sh):

在cron中添加行(命令:
crontab-e
):

用所需的时间和频率替换*s(默认crontab文件中的详细信息)


要安装新的计划任务,只需保存crontab文件

您想要什么,一个报告生成器?或者是触发报表生成器的东西?我正在寻找一种正确的方法,在Django数据库上执行一些预定任务并触发报表。可能是从Django来管理它,而不是从外部通过cron脚本来管理它。我们来看看django cron。关于芹菜有什么线索吗?是的,你可以用芹菜做。我从未使用过芹菜(主要用于排队执行长任务),但芹菜中有一个周期性任务模型:
#!/bin/bash
source /path/to/virtualenv/bin/activate
python /path/to/django/project/manage.py custom_command
* * * * * /path/to/script.sh >> /path/to/log/file.log 2>&1