问答 / 3 / 22 / 创建于 2年前
Lumen (7.2.2) (Laravel Components ^7.0)
PHP 版本:
7.4.29
mac
本地
我们后台有个手动刷新功能
现在想要做成自动刷新但是如果点击了刷新之后又碰到了定时刷新该怎么办呢
$key = 'REFRESH_序列111'; // 锁名称 $lock = $redis->setnx($key,1); // 上锁 if ($lock) { // 拿到锁,执行刷新 $redis->del($key); // 解除锁 } else { // 提示有另一进程正在刷新 }``` 如果担心死锁,把解锁放在 finally 里就行。
lumen
上锁~没标识就执行
自动刷新可以用任务调度,任务调度《Laravel 9 中文文档》, 自动刷新的时候加个Redis锁。
给个下次刷新时间,定时任务每次更新下次处理时间,如果手动更新的话也同时修改下次更新时间 脚本每次执行当前时间之前的数据(下次更新时间)
我觉得简单点就是,给刷新函数加个redis锁, 执行完成删除锁;就类似防止多次提交。 优化就是给锁失效时间,然后写单元测试,防止程序出错,锁一直存在。
求求你 看看文档吧
我要举报该,理由是: