在 Django 中为用户安排电子邮件报告的最佳方式
Best way to schedule email reports to users in Django
所以这个问题更侧重于 Django 的最佳实践和建议。
基本上,我想安排 Django 上的电子邮件报告在两个事件上触发:
- 包含一些统计数据、新闻等的每周报告电子邮件
- 系统事件触发报告(即模型保存)
是否应该通过计划任务直接在 Django 中完成?或者还有其他可以使用的工具吗?
关于每周计划的任务,最直接的方法可能是创建一个新的自定义管理命令,并让 cron 或 Windows 任务计划程序调用该命令。这实际上已经在这里有了答案,还有其他可能的选择供您考虑:
Django - Set Up A Scheduled Job?
注意:如果您使用的是 virtualenv,请确保 cron 通过 virtualenv 中的 python
二进制文件而不是系统路径中的二进制文件调用管理命令。
关于基于应用程序事件或条件的触发操作,有两个想法:
- 您可以为 post-save signal on your model. When the signal is received, the email could be sent via the receiver. You can read up on signals here.
设置监听器
- Django 的 send_mail 电子邮件包装器非常简单,您也可以直接在视图中使用它。
所以这个问题更侧重于 Django 的最佳实践和建议。
基本上,我想安排 Django 上的电子邮件报告在两个事件上触发:
- 包含一些统计数据、新闻等的每周报告电子邮件
- 系统事件触发报告(即模型保存)
是否应该通过计划任务直接在 Django 中完成?或者还有其他可以使用的工具吗?
关于每周计划的任务,最直接的方法可能是创建一个新的自定义管理命令,并让 cron 或 Windows 任务计划程序调用该命令。这实际上已经在这里有了答案,还有其他可能的选择供您考虑:
Django - Set Up A Scheduled Job?
注意:如果您使用的是 virtualenv,请确保 cron 通过 virtualenv 中的 python
二进制文件而不是系统路径中的二进制文件调用管理命令。
关于基于应用程序事件或条件的触发操作,有两个想法:
- 您可以为 post-save signal on your model. When the signal is received, the email could be sent via the receiver. You can read up on signals here. 设置监听器
- Django 的 send_mail 电子邮件包装器非常简单,您也可以直接在视图中使用它。