防止多次运行相同的控制台命令
编辑该页面防止多次运行相同的控制台命令
您可以使用锁防止相同的命令运行多次在同一台服务器上。的锁组件提供了多个类来创建基于文件系统(锁FlockStore),共享内存(SemaphoreStore),甚至数据库和复述,服务器。
此外,控制台组件提供一个PHP特质LockableTrait
添加两个方便的方法来锁定和释放命令:
1 2 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
/ /……使用ob娱乐下载\组件\控制台\命令\命令;使用ob娱乐下载\组件\控制台\命令\LockableTrait;使用ob娱乐下载\组件\控制台\输入\InputInterface;使用ob娱乐下载\组件\控制台\输出\OutputInterface;类UpdateContentsCommand扩展命令{使用LockableTrait;/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出):int{如果(!美元这- >锁()){美元输出- >writeln (的命令已经运行在另一个进程。);返回命令::成功;}/ /如果你愿意等到释放锁,用这个:/ / $ this - >锁(null,真实);/ /……/ /如果没有显式地释放,Symfony释放锁ob娱乐下载/ /结束时自动执行命令美元这- >release ();返回命令::成功;}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。