防止多次执行一个控制台命令
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
防止多次执行一个控制台命令
3.2
的LockableTrait
是在Symfony 3.2中引入的。ob娱乐下载
一个简单但有效的方法防止多次执行相同的命令在一个服务器是使用锁。的锁组件提供了多个类来创建基于文件系统(锁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
/ /……使用ob娱乐下载\组件\控制台\命令\命令;使用ob娱乐下载\组件\控制台\命令\LockableTrait;使用ob娱乐下载\组件\控制台\输入\InputInterface;使用ob娱乐下载\组件\控制台\输出\OutputInterface;类UpdateContentsCommand扩展命令{使用LockableTrait;/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出){如果(!美元这- >锁()){美元输出- >writeln (的命令已经运行在另一个进程。);返回0;}/ /如果你愿意等到释放锁,用这个:/ / $ this - >锁(null,真实);/ /……/ /如果没有显式地释放,Symfony释放锁ob娱乐下载/ /结束时自动执行命令美元这- >release ();}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。