0

我想生成定期报告并将它们发送给用户。

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

您认为将其集成到 Django 中的一个好的解决方案是什么?

4

1 回答 1

0

如果您使用的是 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 文件

于 2012-12-17T16:43:42.483 回答