当前位置:  开发笔记 > 编程语言 > 正文

Symfony2 - 检查命令是否正在运行

如何解决《Symfony2-检查命令是否正在运行》经验,为你挑选了1个好方法。

有没有办法检查symfony命令是否已经运行?我有一个没有超时运行并消耗数据的命令,我需要知道命令是否已经运行.



1> Stefan Gehri..:

您可以使用锁定来确保命令一次只运行一次.Symfony LockHandler为此提供了帮助,但您也可以使用普通PHP轻松完成此操作.

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Filesystem\LockHandler;

class WhateverCommand extends Command
{
    protected function configure() { }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $lock = new LockHandler('a_unique_id_for_your_command');
        if (!$lock->lock()) {
            $output->writeln('This command is already running in another process.');

            return 0;
        }

        // ... do some task

        $lock->release();
    }
}

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有