禁止重复执行同一控制台命令

编辑本页

禁止重复执行同一控制台命令

你可以使用防止同一命令在同一服务器上多次运行。的锁组件提供多个类来基于文件系统创建锁(FlockStore),共享内存(SemaphoreStore),甚至数据库和Redis服务器。

此外,Console组件还提供了一个名为LockableTrait这为锁定和释放命令添加了两个方便的方法:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
/ /……使用欧宝娱乐app下载地址组件控制台命令命令使用欧宝娱乐app下载地址组件控制台命令LockableTrait使用欧宝娱乐app下载地址组件控制台输入InputInterface使用欧宝娱乐app下载地址组件控制台输出OutputInterfaceUpdateContentsCommand扩展命令使用LockableTrait/ /……受保护的函数执行(InputInterface输入, OutputInterface输出int如果(!->锁()){输出->writeln (该命令已经在另一个进程中运行。);返回命令::成功;}//如果你想等待直到锁被释放,使用这个:// $this->锁(null, true);/ /……//如果没有显式释放,Symfony释放锁欧宝娱乐app下载地址//当命令执行结束时自动返回->release ();返回命令::成功;}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
欧宝娱乐app下载地址Symfony 6.2支持通过苏禄人
欧宝娱乐app下载地址Symfony 6.2支持通过Les-Tilleuls.coop