Django实时通知系统

Django实时通知系统,django,django-models,Django,Django Models,我正在尝试制作一个通知系统,当一个特定的操作完成或到达某个日期时,它基本上会通知用户或超级用户 假设我有一个模型,它有一个datetime字段。我希望我的系统在datetime离我5天零1分钟的时候给我发送一封电子邮件,并且显然适用于该模型的所有对象。或者说,我想在那个日期和时间发送通知电子邮件。此外,我需要这种动态机制,以便可以更改或删除这些通知的条件,并且可能在同一个模型上有多个通知条件 现在,我考虑了调度任务(我真的不知道该怎么做),但我认为这会使系统速度下降,让我们说上百个模型对象,甚至

我正在尝试制作一个通知系统,当一个特定的操作完成或到达某个日期时,它基本上会通知用户或超级用户

假设我有一个模型,它有一个datetime字段。我希望我的系统在datetime离我5天零1分钟的时候给我发送一封电子邮件,并且显然适用于该模型的所有对象。或者说,我想在那个日期和时间发送通知电子邮件。此外,我需要这种动态机制,以便可以更改或删除这些通知的条件,并且可能在同一个模型上有多个通知条件

现在,我考虑了调度任务(我真的不知道该怎么做),但我认为这会使系统速度下降,让我们说上百个模型对象,甚至几千个。p> 我之所以来到这里,用另一个问题来困扰这个令人惊叹的社区,是因为我想知道以下几点:

  • 有没有一个Django应用程序已经可以这样做了,但我在几个小时的搜索后找不到

  • 如果不是,那么调度任务是唯一的选择吗?如果是的话,a能否从中获得参考链接?虽然我猜安排太多的任务可能不好(同样,我也不知道,我可能是错的)。如果是这样的话,你们这些了不起的人有什么建议


谢谢你花时间阅读这篇文章。我真的很感激这个社区。

我认为你想要的不是django端,任何Pythony的方式。在Pythony中,你可以运行一个控制台应用程序,不用弯腰就能运行,你可以随心所欲地运行。他们还有计划任务,你可以设置运行python文件的时间。

你需要计划任务。您可以使用创建计划任务(cron作业)。安装起来非常简单。您可以每分钟运行一个cron作业来检查数据库中您关心的datetime字段,并执行您想要的操作。如果您正确地查询数据库,它应该不会很昂贵,但我不建议每分钟运行一个cron作业,除非确实需要,除非您有一个专用服务器,并且您不必像在无服务器环境中那样为执行时间付费

摘要

  • 对于静态cronjobs,您可以
    django cron选项卡
  • 用于动态cron作业 你可以用你的
    django芹菜节拍
  • Django芹菜节拍使您能够在数据库中存储定期任务计划。定期任务可以从Django管理界面进行管理,您可以在该界面中创建、编辑和删除定期任务以及它们应该运行的频率


    哦这听起来很有趣。你能给我一个例子或者一个指向相关线程的链接吗?是的,这正是我最初考虑的,但它都是基于命令行的,更硬的编码。有什么动态的东西吗?或者我可以让这个应用程序动态化,但是为add、show和其他选项创建一个特定的视图,然后从Python中调用CMD中的整个命令吗?我想我在这一点上的问题是:CMD命令
    python manage.py crontab add
    是否在服务器运行时起作用,或者是否需要重新启动或其他什么(我不认为我们会这样做,但更明智的做法是获得专业意见)?部署后,只需在服务器上运行该命令一次。不管本地或服务器环境如何,该命令都将以相同的方式工作。我担心的原因是,假设我有100个对象,我想安排一项任务,在日期时间前15分钟向我发送电子邮件。我必须循环检查所有的100个物体,检查我是否提前15分钟到达