Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2在后台运行服务,并可能控制执行_Php_Symfony_Service_Command Line Interface_Backend - Fatal编程技术网

Php Symfony2在后台运行服务,并可能控制执行

Php Symfony2在后台运行服务,并可能控制执行,php,symfony,service,command-line-interface,backend,Php,Symfony,Service,Command Line Interface,Backend,我在Symfony2中实现了一个控制台脚本,它在后台无限运行。 它负责对邮箱进行解析,然后将新电子邮件持久保存在我的数据库中。 我想知道如何从控制器停止此命令 我感兴趣的问题还有其他解决方案吗?因为我不喜欢创建命令的想法 class ImapCommand extends Command { private $em; public function __construct(EntityManager $em) { parent::__construct(); $this->

我在Symfony2中实现了一个控制台脚本,它在后台无限运行。 它负责对邮箱进行解析,然后将新电子邮件持久保存在我的数据库中。 我想知道如何从控制器停止此命令

我感兴趣的问题还有其他解决方案吗?因为我不喜欢创建命令的想法

class ImapCommand extends Command {
private $em;

public function __construct(EntityManager $em)
{
    parent::__construct();
    $this->em = $em;
}

protected function configure()
{
    $this->setName('myproject:emailparse')->setDescription('Parse Email');
}

protected function execute(InputInterface $input, OutputInterface $output)
{
    while (true) {
      sleep(60);
      $mailbox = new Mailbox('{imap.gmail.com:993/imap/ssl}INBOX', 'xxxxxxx@gmail.com', '********', 'c:/');

      $mailsIds = $mailbox->searchMailbox('UNSEEN');

      $mail = $mailbox->getMail($mailsIds[1]);
    //... persist in database
    }
}}
我使用这个命令来运行 “php应用程序/控制台myproject:emailparse”

电子邮件地址和密码是从数据库中加载的,我没有输入此代码


当管理员决定更改地址邮件或密码时,我想从控制器中停止此命令,然后重新启动它

创建命令的想法不符合我的要求。为什么您先创建一个命令作为命令?我没有找到其他命令solution@ReynierPM,你那边的一个有点奇怪的问题,带有讽刺意味。他是新来的,所以还是受欢迎为好。Ahmed,请描述您的CLI脚本,发布一些代码片段以了解您在做什么。要停止脚本,可以终止刚刚运行的进程,或者创建一些触发器,脚本将对这些触发器作出反应。这取决于你的品味和执行方式。@Farside我同意,但如果你注意到他/她第一次发布我们什么都没有的帖子,现在问题就更清楚了,任何人都可以回答:D创建命令的想法让我不高兴为什么你在first中创建命令?我还没有找到另一个solution@ReynierPM,你那边有点奇怪的问题,带有讽刺意味。他是新来的,所以还是受欢迎为好。Ahmed,请描述您的CLI脚本,发布一些代码片段以了解您在做什么。要停止脚本,可以终止刚刚运行的进程,或者创建一些触发器,脚本将对这些触发器作出反应。“这取决于你的品味和你将要实施的方式。”Farside我同意,但如果你注意到他/她第一次发布我们什么都没有的帖子,现在问题更清楚了,任何人都可以回答:D