首页 > 解决方案 > 事件触发时限制对页面的访问

问题描述

我创建了一个预订系统,它每 5 分钟与 Google 日历同步一次,还会截断旧数据并从日历中获取新数据,这个过程大约需要 2-3 秒。

我想要做的是,当从 Google 日历获取数据的事件发生时,我想在这 2-3 秒内禁用对预订系统路线的访问,然后在事件结束时再次启用它,我想这样做因为它会截断旧数据并获取新数据,所以如果有人在这 2-3 秒内查看预订系统,那么所有预订时间都是免费的,我不希望这种情况发生。

这种事情可能吗?谢谢并恭祝安康!

标签: laravel

解决方案


好吧,我的建议是在您的用户表中创建一个新字段,例如:is_google_sync_active 和路由中间件。

然后就在您开始同步之前。您将该字段更改为 true 并且在您的新中间件中您可以检查是否同步。是否处于活动状态,然后在您同步时。结束您只需将字段的值再次更改为false。因此,每次当用户尝试传递到您的同步路由时,他都会传递您的中间件,该中间件将处理所有工作。

此外,如果同步,您可以将用户重定向到显示状态或进度的页面。正在处理。


推荐阅读