Server : nginx/1.20.2 System : Linux VM-4-4-centos 3.10.0-1160.66.1.el7.x86_64 #1 SMP Wed May 18 16:02:34 UTC 2022 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/greatapp.cn/vendor/topthink/think-queue/src/queue/command/ |
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2015 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: yunwuxin <448901948@qq.com> // +---------------------------------------------------------------------- namespace think\queue\command; use think\console\Command; use think\console\Input; use think\console\input\Option; use think\console\Output; use think\queue\Listener; class Listen extends Command { /** @var Listener */ protected $listener; public function configure() { $this->setName('queue:listen') ->addOption('queue', null, Option::VALUE_OPTIONAL, 'The queue to listen on', null) ->addOption('delay', null, Option::VALUE_OPTIONAL, 'Amount of time to delay failed jobs', 0) ->addOption('memory', null, Option::VALUE_OPTIONAL, 'The memory limit in megabytes', 128) ->addOption('timeout', null, Option::VALUE_OPTIONAL, 'Seconds a job may run before timing out', 60) ->addOption('sleep', null, Option::VALUE_OPTIONAL, 'Seconds to wait before checking queue for jobs', 3) ->addOption('tries', null, Option::VALUE_OPTIONAL, 'Number of times to attempt a job before logging it failed', 0) ->setDescription('Listen to a given queue'); } public function initialize(Input $input, Output $output) { $this->listener = new Listener(getcwd()); $this->listener->setSleep($input->getOption('sleep')); $this->listener->setMaxTries($input->getOption('tries')); $this->listener->setOutputHandler(function ($type, $line) use ($output) { $output->write($line); }); } public function execute(Input $input, Output $output) { $delay = $input->getOption('delay'); $memory = $input->getOption('memory'); $timeout = $input->getOption('timeout'); $queue = $input->getOption('queue') ?: 'default'; $this->listener->listen($queue, $delay, $memory, $timeout); } }