php
public $mutexName = 'xxxxx'; //固定的值
protected function checkThread()
{
\Yii::$app->setComponents([
'mutex' => [
'class' => 'yii\redis\Mutex',
'expire' => 300,
],
]);
return \Yii::$app->mutex->acquire($this->mutexName, 10);
}
有个定时任务,每次执行前我都会调用一下checkThread
去获取锁,获取不到就退出。
现在有多台机器设置了同样时刻的这个计划任务,在同一时间执行了这定时任务,我发现还是重复执行了后面的业务逻辑。
这是这个获取锁没效?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.