Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 1.3,当一篇文章像在易趣上一样结束时,如何发出信号?_Python_Sql_Django_Django Models_Django Signals - Fatal编程技术网

Python Django 1.3,当一篇文章像在易趣上一样结束时,如何发出信号?

Python Django 1.3,当一篇文章像在易趣上一样结束时,如何发出信号?,python,sql,django,django-models,django-signals,Python,Sql,Django,Django Models,Django Signals,我完全糊涂了,不知道怎么做,所以如果我的描述/信息不好,请原谅我 所以我想说,通过django通知发送通知,或者在我的一个用户的帖子像在ebay上一样结束时,向他发送一封电子邮件。在我的数据库中,我有一个模型,它存储了文章将要结束的日期时间,但我不确定如何有效地检查或存储一个信号或一些东西,当当前时间>结束日期时间时,它会提醒系统提醒用户 谢谢 由于我想在帖子结束后的第二天发送电子邮件/通知,我不认为我可以使用调度程序来检查任何帖子是否已结束,我认为这样做效率太低,因为我必须像每秒钟一样进行检查

我完全糊涂了,不知道怎么做,所以如果我的描述/信息不好,请原谅我

所以我想说,通过django通知发送通知,或者在我的一个用户的帖子像在ebay上一样结束时,向他发送一封电子邮件。在我的数据库中,我有一个模型,它存储了文章将要结束的日期时间,但我不确定如何有效地检查或存储一个信号或一些东西,当当前时间>结束日期时间时,它会提醒系统提醒用户

谢谢


由于我想在帖子结束后的第二天发送电子邮件/通知,我不认为我可以使用调度程序来检查任何帖子是否已结束,我认为这样做效率太低,因为我必须像每秒钟一样进行检查,但正如我上面所说,我不确定您可以使用什么…

连接一个检查
创建的
是否为
真的
,如果是,则安排一个
任务
,该任务将在正确的时间通知用户(使用)。

我觉得您至少已经考虑了一些解决方案。但需要记住的一点是,Django作为一个web框架,是一个无状态的“机器”。简言之,这意味着post过期的那一秒不是“运行”的(或者说,您不能假设post过期的那一秒是从浏览器发送请求的)。这意味着使用Django发出信号/发送通知是不合适的

但是,由于您确切地知道应该在何时发送电子邮件,因此应该可以在创建帖子后立即在Django中对通知进行排队。然后,一些外部“程序”将不得不处理队列以实际发送通知……有各种创造性的方法可以做到这一点,但您当然可以使用python来做到这一点

如果您想考虑使用消息队列,请查看RabByMQ


正如其他人所说,最好的解决办法是django芹菜(https://github.com/ask/django-celery)但如果你资源不足,它就有点重了

在类似的需求中,我有一个中间件来检查条件并执行所需的操作(在我的例子中,它只是在数据库的一些记录中更改布尔值)。这对我来说是可行的,因为在有人真正访问数据之前,没有必要对其进行更改,因为“任务”只是一个更新查询,所以它不是一个无法承受的负载


否则,您可以每短时间(1分钟?5分钟?)设置一个cron作业,并检查条件和结果。

是的,我认为这样做会很好,但我担心django芹菜这样做会占用多少内存。。。最好的低内存方式是什么?