我正在平台上工作-- MarketPlace,有预约。有一些专业人士创造了可用性。可用性是创建周期,例如上午8:00到下午5:00。它是保存在mongodb中的时间段。客户选择1小时。(客户日历是动态生成的,周期为1小时),例如:上午8:00至下午5:00期间有:8:00-9:00上午9:00,9:00-10:00等…。
因此,两个客户不可能同时预订同一时间。
当客户选择一个句点并单击“预订”按钮时,预订对象将保存在会话中。客户购买此预订,并在预订对象保存在预订集合中之后。
如何“锁定”由第一个客户选择的时间段,防止第二个客户想要保留同一期间?
我怎样才能固定计时器10分钟,如果没有支付期间的“可用性”,打开日历中的这段时间?如何创建与服务器同步的计时器,并在超时结束时重定向到主页?我必须创建一个临时集合,预订正在进行中?还是将对象保留保存在我的集合中,保留状态为“进行中”?
我使用symfony 3和mongodb作为教条。
谢谢。
发布于 2017-01-22 13:25:13
如何“锁定”由第一个客户选择的时间段,防止第二个客户想要保留同一期间?
在MongoDB中,对单个文档的更新是原子的,这就是为什么您可以设置如下所示的保留标志:
db.time_reservation.update(
{_id: "<period primary key>", reserved: false,}, {
$set: {
reserved: true,
reservedAt: new Date()
}
});我怎样才能固定计时器10分钟,如果没有支付期间的“可用性”,打开日历中的这段时间?
您可以使用cron命令执行以下命令
db.time_reservation.update({
reservedAt: {
$lt: new Date(ISODate().getTime() - 1000 * 60 * 10)
}
}, {$set: {reserved: false}});如何创建与服务器同步的计时器,并在超时结束时重定向到主页?
许多可能的解决办法:
https://stackoverflow.com/questions/41791152
复制相似问题