已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
48分钟前就关门了。
Improve this question
我正在尝试开发类似airbnb的东西,当用户预订一套公寓时,我想将该公寓封锁30分钟,如果用户不付款,系统将从readyForReserve表中删除该公寓的封锁。
我的问题是,我应该如何检查,如果住宅完成30分钟的等待,并应从阻止列表中删除?
(BTW-我的数据库是ssms,我使用efcore和linq)
如何在30分钟后更新数据库表?
我找到了backgroundService
和delay
,但我不确定它们是否正确
3条答案
按热度按时间v64noz0r1#
您应该编写一个辅助服务(使用项目的“WorkerService”模板),并通过更改解决方案属性将其添加到启动项目中。
我将把工人示例代码为您在这里:程序.cs
工作进程.cs
nimxete22#
您不需要不断更新您的表格,只需在预订中设置一个到期时间(或一个创建时间,然后根据该时间进行计算)。
例如:
当你预订房间时,你可以将
ExpiryTime
设置为半小时,当你付了钱时,你可以将它设置为更高的日期。然后您可以按到期日期查询可用预订
要点是,**任何已经过期的保留将被简单地忽略。**不需要在后台发生对表的更新。
im9ewurl3#
我找到了backgroundService和delay,但我不确定这些是否正确
是的,如果您运行一个或多个服务器示例,则应使用
backgroundService
如果只有一个服务器示例,则可以使用托管服务
方法如下:
1.锁定公寓资源一旦订单下,排队延迟的工作,以释放此锁后30分钟
1.设置一个周期作业,以释放超过30分钟的所有单元资源锁