Djang中的Timer对象

2024-05-15 03:30:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Django为有限数量的产品创建注册/付款应用程序。我想创建一个计时器,这样当用户选择购买产品时,该产品将显示为“已经采取”。但是,如果用户没有完成购买并且计时器用完,则产品将返回到“可用”状态。如果用户完成了购买,计时器应该取消,使产品的状态永久保持为“already taken”。在

我曾经尝试过使用python的字典来实例化python计时器对象,但是大约30%的时间,当我要取消计时器时,我会得到一个“键错误”。在

拜托。有人能告诉我在Django做这件事的正确方法吗?在

非常感谢!在

马克


Tags: 对象django实例用户应用程序数量字典产品
3条回答

您不应该使用一些进程内/内存计时器对象,因为django应用程序可以在多个进程中运行。。。在

“我建议你的产品在过期日期和时间标记”的时间和产品

叉开。让您的模型对一个产品使用三种状态:availabletaken,和{}。当用户启动一个将产品标记为taken的操作时,生成一个新进程,该进程将在3分钟内将产品标记为available,如果不是{}。在

我不会在这种情况下使用计时器,因为它会带来一些复杂性。如果进程重新启动,计时器将发生什么情况。一些互联网提供商却不这么认为,他们会定期重启这个过程。也许你也面临着类似的情况。在

我会在您的表中添加一个“take_time”datetime字段,以了解产品何时被使用,并使用它来了解产品是否可用

可用产品列表将填写“可用”产品,如果其“占用时间”低于(当前时间-可接受延迟),则填写“已用”产品

我认为只要在业务逻辑中正确地管理外部流程,就不需要用外部流程更改状态。在

我希望有帮助

PS:对不起我的英语!现在在法国已经很晚了,我很难找到简单的方法来解释我的观点:-)

相关问题 更多 >

    热门问题