Php Symfony2在后台运行服务,并可能控制执行
我在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->
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