我使用Django为有限数量的产品创建注册/付款应用程序。我想创建一个计时器,这样当用户选择购买产品时,该产品将显示为“已经采取”。但是,如果用户没有完成购买并且计时器用完,则产品将返回到“可用”状态。如果用户完成了购买,计时器应该取消,使产品的状态永久保持为“already taken”。在
我曾经尝试过使用python的字典来实例化python计时器对象,但是大约30%的时间,当我要取消计时器时,我会得到一个“键错误”。在
拜托。有人能告诉我在Django做这件事的正确方法吗?在
非常感谢!在
马克
Tags:
您不应该使用一些进程内/内存计时器对象,因为django应用程序可以在多个进程中运行。。。在
“我建议你的产品在过期日期和时间标记”的时间和产品
叉开。让您的模型对一个产品使用三种状态:}。当用户启动一个将产品标记为}。在
available
,taken
,和{taken
的操作时,生成一个新进程,该进程将在3分钟内将产品标记为available
,如果不是{我不会在这种情况下使用计时器,因为它会带来一些复杂性。如果进程重新启动,计时器将发生什么情况。一些互联网提供商却不这么认为,他们会定期重启这个过程。也许你也面临着类似的情况。在
我会在您的表中添加一个“take_time”datetime字段,以了解产品何时被使用,并使用它来了解产品是否可用
可用产品列表将填写“可用”产品,如果其“占用时间”低于(当前时间-可接受延迟),则填写“已用”产品
我认为只要在业务逻辑中正确地管理外部流程,就不需要用外部流程更改状态。在
我希望有帮助
PS:对不起我的英语!现在在法国已经很晚了,我很难找到简单的方法来解释我的观点:-)
相关问题 更多 >
编程相关推荐