我想使用php信号量来防止Laravel连接到db的死锁。 我使用下面的示例代码,它可以在80%的时间内工作,但在实际应用程序中它会抛出错误,sem_release():无法释放密钥标识符。
$sem_id = sem_get($user_id , 1);
if ($sem_id === false)
{
return "Fail to get semaphore";
}
if (! sem_acquire($sem_id))
{
sem_remove($sem_id);
return "Fail to aquire semaphore $sem_id.\n";
}
if (error) {
sem_release($sem_id);
sem_remove($sem_id);
return 'fail';
}
if (!sem_release($sem_id))// this line throws error
return "Fail to release $sem_id semaphore.\n";
if (!sem_remove($sem_id))
return "Fail to remove $sem_id semaphore from SysV.\n";
return 'ok';
任何人都可以帮助我。感谢