symfony - 如何在不同的服务器实例中使用 Symfony Lock 组件?
问题描述
来自 Symfony 锁组件的文档 here
我找到
与其他实现不同,锁组件即使是为同一资源创建的锁实例也会区分它们。如果一个锁必须由多个服务使用,它们应该共享 Factory::createLock 方法返回的同一个 Lock 实例。
对于代码示例
public function tryLock( $job):
{
$lock = $this->factory->createLock($job->getUniqueId());
$lock->acquire();
return $lock->isAcquired() ;
}
如果我从其他类使用相同的作业运行此功能 2 次,它将相互锁定
我怎样才能防止这种情况?!当我在同一台服务器上使用它时,另一个问题是如果我使用多个服务器实例,我该如何使用它
解决方案
推荐阅读
- javascript - 如何分配数组中的所有对象?
- git - 尝试从 git 历史记录中删除大文件时,refs/heads/master 未更改
- compatibility - 如何在 avro 模式中向嵌套映射添加新类型时保持 FULL_TRANSITIVE 兼容性?
- bash - 创建函数来执行显示时间算术
- html - 限制引导页面的总宽度?
- mysql - 当 LIKE 条件包含多个非通配符时,准备查询无法返回结果
- python - Tensorflow CUDA - CUPTI 错误:无法加载 CUPTI 或找不到符号
- python - 如何在python中用漂亮的汤从div中find_all(id)
- python - Python:Selenium“没有这样的元素”XPath 或 ID
- excel - IF 语句在一个单元格中返回多个值