我正在尝试建立一个通知系统,在完成某个特定操作或达到某个日期时,基本上通知用户或超级用户。
假设我有一个模型,它有一个日期时间域。我希望我的系统给我发一封电子邮件,当那个日期时间离我5天零1分钟,显然适用于该模型的所有对象。或者说,我想在那个日期的那一刻发送通知邮件。另外,我需要这种动态,这样我就可以更改或删除这些通知的条件,并且可能在同一个模型上有多个通知条件。
现在,我确实考虑过调度任务(我还不知道怎么做),但我认为这会使系统慢下来,比如数百个模型对象,甚至数千个。
我来到这里,用另一个问题困扰这个令人惊叹的社区的原因是,我想知道以下几点:
谢谢你花时间看这个。我真的很感激这个社区。
发布于 2020-05-28 08:42:21
你需要安排任务。您可以使用django crontab创建计划任务(cron作业)。这是超级容易设置。您可以每分钟运行一次cron作业,检查数据库中所关心的日期时间字段,并采取所需的操作。如果您正确地查询您的db,它应该不会很昂贵,但我不会建议您每分钟运行一个cron作业,除非您有一个专用的服务器,而且您不需要像在无服务器环境中那样为执行时间付费。
摘要
django-cron-tab。django-celery-beat。Django芹菜节拍使您能够将定期任务调度存储在数据库中。周期任务可以通过Django管理界面进行管理,您可以在其中创建、编辑和删除定期任务,以及它们应该运行的频率。
发布于 2020-05-28 08:28:53
我认为您想要的不是django端,在pythonanywhere中,您可以运行一个控制台应用程序,不需要弯腰运行,您可以随心所欲地运行它,它们还有调度任务,您可以设定运行python文件的时间。
https://stackoverflow.com/questions/62058298
复制相似问题