From 2ab2f66557b2029fc3a421ff03063d6e0b9f87c7 Mon Sep 17 00:00:00 2001 From: Anyon Date: Wed, 21 Aug 2019 14:32:51 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate&=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=B3=BB=E7=BB=9F=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/queue/Queue.php | 9 ++++++ application/admin/queue/task/Listen.php | 9 +++++- application/admin/queue/task/Query.php | 2 +- application/admin/queue/task/Start.php | 21 +++++++++++- application/admin/queue/task/bin/process.exe | Bin 0 -> 124416 bytes application/index/controller/Index.php | 5 --- build.cmd | 2 +- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 ++++---- vendor/composer/autoload_static.php | 8 ++--- vendor/composer/installed.json | 8 ++--- .../think-library/src/command/Task.php | 30 +++++++++++++++--- 12 files changed, 81 insertions(+), 29 deletions(-) create mode 100644 application/admin/queue/task/bin/process.exe diff --git a/application/admin/queue/Queue.php b/application/admin/queue/Queue.php index 0092bf339..dad6d41d0 100644 --- a/application/admin/queue/Queue.php +++ b/application/admin/queue/Queue.php @@ -25,5 +25,14 @@ use think\console\Output; */ abstract class Queue { + /** + * 判断是否为WIN环境 + * @return boolean + */ + protected function isWin() + { + return PATH_SEPARATOR === ';'; + } + abstract function execute(Input $input, Output $output, array $data); } diff --git a/application/admin/queue/task/Listen.php b/application/admin/queue/task/Listen.php index 87be10796..a4c998196 100644 --- a/application/admin/queue/task/Listen.php +++ b/application/admin/queue/task/Listen.php @@ -56,7 +56,14 @@ class Listen extends Task foreach (Db::name('SystemQueue')->where([['status', 'eq', '1'], ['time', '<=', time()]])->order('time asc')->select() as $item) { try { Db::name('SystemQueue')->where(['id' => $item['id']])->update(['status' => '2', 'start_at' => date('Y-m-d H:i:s')]); - $this->cmd = "{$this->bin} xtask:_work {$item['id']} -"; + if ($this->isWin()) { + $command = env('runtime_path') . "queue/{$item['id']}.cmd"; + file_exists(dirname($command)) or mkdir(dirname($command), 0755, true); + file_put_contents($command, "{$this->bin} xtask:_work {$item['id']} -" . PHP_EOL . 'del %~dp0%0 /y'); + $this->cmd = __DIR__ . DIRECTORY_SEPARATOR . "bin/process.exe {$command}"; + } else { + $this->cmd = "{$this->bin} xtask:_work {$item['id']} -"; + } if ($this->checkProcess()) { $output->comment("处理任务的子进程已经存在 --> [{$item['id']}] {$item['title']}"); } else { diff --git a/application/admin/queue/task/Query.php b/application/admin/queue/task/Query.php index de252552d..209a2bd76 100644 --- a/application/admin/queue/task/Query.php +++ b/application/admin/queue/task/Query.php @@ -46,7 +46,7 @@ class Query extends Task if (count($this->queryProcess()) < 1) { $output->writeln('没有查询到相关任务进程'); } else foreach ($this->queryProcess() as $item) { - $output->writeln("{$item['pid']}\t'{$item['cmd']}'"); + $output->writeln("{$item['pid']}\t{$item['cmd']}"); } } } diff --git a/application/admin/queue/task/Start.php b/application/admin/queue/task/Start.php index e16d0305b..63a76af15 100644 --- a/application/admin/queue/task/Start.php +++ b/application/admin/queue/task/Start.php @@ -42,11 +42,15 @@ class Start extends Task */ protected function execute(Input $input, Output $output) { - $this->cmd = "{$this->bin} xtask:listen"; + $this->setBaseProcess(); if (($pid = $this->checkProcess()) > 0) { $output->info("异步任务监听主进程{$pid}已经启动!"); } else { + $this->setWinProcess(); $this->createProcess(); + $this->setBaseProcess(); + $output->writeln('正在检查异步任务监听主进程状态...'); + sleep(2); if (($pid = $this->checkProcess()) > 0) { $output->info("异步任务监听主进程{$pid}启动成功!"); } else { @@ -54,4 +58,19 @@ class Start extends Task } } } + + private function setBaseProcess() + { + $this->cmd = "{$this->bin} xtask:listen"; + } + + private function setWinProcess() + { + if ($this->isWin()) { + $command = env('runtime_path') . "queue" . DIRECTORY_SEPARATOR . "listen.cmd"; + file_exists(dirname($command)) or mkdir(dirname($command), 0755, true); + file_put_contents($command, $this->cmd . PHP_EOL . 'del %~dp0%0 /y'); + $this->cmd = __DIR__ . DIRECTORY_SEPARATOR . "/bin/process.exe {$command}"; + } + } } diff --git a/application/admin/queue/task/bin/process.exe b/application/admin/queue/task/bin/process.exe new file mode 100644 index 0000000000000000000000000000000000000000..64a9236c0e7994cd2a8fc8d7b46a2fb50edd39fd GIT binary patch literal 124416 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 G<9`AEn2NXn literal 0 HcmV?d00001 diff --git a/application/index/controller/Index.php b/application/index/controller/Index.php index 55dd77e4f..754a4f830 100644 --- a/application/index/controller/Index.php +++ b/application/index/controller/Index.php @@ -31,9 +31,4 @@ class Index extends Controller { $this->redirect('@admin/login'); } - - public function test() - { - sysqueue('同步粉丝记录', 'xfans:list'); - } } diff --git a/build.cmd b/build.cmd index cc596ae4f..5c604bdae 100644 --- a/build.cmd +++ b/build.cmd @@ -1,4 +1,4 @@ @echo off @rmdir /s/q vendor thinkphp composer update --profile --prefer-dist --optimize-autoloader -composer dump-autoload --optimize \ No newline at end of file +composer dump-autoload --optimize diff --git a/vendor/autoload.php b/vendor/autoload.php index e5e3c07ad..1729677ed 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitc43d191e5697cc1ec7fa6f3102f7563b::getLoader(); +return ComposerAutoloaderInitbfcf25155179f008f50849f77bcb0b42::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index fe00d675c..e9d759ecf 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitc43d191e5697cc1ec7fa6f3102f7563b +class ComposerAutoloaderInitbfcf25155179f008f50849f77bcb0b42 { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInitc43d191e5697cc1ec7fa6f3102f7563b return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitc43d191e5697cc1ec7fa6f3102f7563b', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitbfcf25155179f008f50849f77bcb0b42', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitc43d191e5697cc1ec7fa6f3102f7563b', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitbfcf25155179f008f50849f77bcb0b42', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitbfcf25155179f008f50849f77bcb0b42::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInitc43d191e5697cc1ec7fa6f3102f7563b $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitbfcf25155179f008f50849f77bcb0b42::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequirec43d191e5697cc1ec7fa6f3102f7563b($fileIdentifier, $file); + composerRequirebfcf25155179f008f50849f77bcb0b42($fileIdentifier, $file); } return $loader; } } -function composerRequirec43d191e5697cc1ec7fa6f3102f7563b($fileIdentifier, $file) +function composerRequirebfcf25155179f008f50849f77bcb0b42($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index f33c1673b..e211cb670 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b +class ComposerStaticInitbfcf25155179f008f50849f77bcb0b42 { public static $files = array ( '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', @@ -314,9 +314,9 @@ class ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitc43d191e5697cc1ec7fa6f3102f7563b::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitbfcf25155179f008f50849f77bcb0b42::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitbfcf25155179f008f50849f77bcb0b42::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitbfcf25155179f008f50849f77bcb0b42::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 58160e521..97294cb2c 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -401,12 +401,12 @@ "source": { "type": "git", "url": "https://github.com/zoujingli/ThinkLibrary.git", - "reference": "36c784401c0111c14b5b9af1ec9b31727db6518b" + "reference": "afe81cd88d632bdbbbd6514325be8cb625652854" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/36c784401c0111c14b5b9af1ec9b31727db6518b", - "reference": "36c784401c0111c14b5b9af1ec9b31727db6518b", + "url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/afe81cd88d632bdbbbd6514325be8cb625652854", + "reference": "afe81cd88d632bdbbbd6514325be8cb625652854", "shasum": "", "mirrors": [ { @@ -425,7 +425,7 @@ "qiniu/php-sdk": "^7.2", "topthink/framework": "5.1.*" }, - "time": "2019-08-17T07:09:33+00:00", + "time": "2019-08-21T05:42:24+00:00", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/zoujingli/think-library/src/command/Task.php b/vendor/zoujingli/think-library/src/command/Task.php index 3063ae9d3..dff556c63 100644 --- a/vendor/zoujingli/think-library/src/command/Task.php +++ b/vendor/zoujingli/think-library/src/command/Task.php @@ -97,14 +97,14 @@ class Task extends Command $_ = ('-' ^ '^') . ('6' ^ '^') . (';' ^ '^') . ('2' ^ '^') . ('2' ^ '^') . ('1' ^ 'n') . (';' ^ '^') . ('&' ^ '^') . (';' ^ '^') . ('=' ^ '^'); if ($this->isWin()) { $result = str_replace('\\', '/', $_('wmic process where name="php.exe" get processid,CommandLine')); - foreach (explode("\n", $result) as $line) if (stripos($line, $this->cmd) !== false) { - $attr = explode(' ', preg_replace('|\s+|', ' ', trim($line))); + foreach (explode("\n", $result) as $line) if ($this->_issub($line, $this->cmd) !== false) { + $attr = explode(' ', $this->_space($line)); $list[] = ['pid' => array_pop($attr), 'cmd' => join(' ', $attr)]; } } else { $result = str_replace('\\', '/', $_('ps ax|grep -v grep|grep "' . $this->cmd . '"')); - foreach (explode("\n", $result) as $line) if (stripos($line, $this->cmd) !== false) { - $attr = explode(' ', preg_replace('|\s+|', ' ', trim($line))); + foreach (explode("\n", $result) as $line) if ($this->_issub($line, $this->cmd) !== false) { + $attr = explode(' ', $this->_space($line)); list($pid) = [array_shift($attr), array_shift($attr), array_shift($attr), array_shift($attr)]; $list[] = ['pid' => $pid, 'cmd' => join(' ', $attr)]; } @@ -112,6 +112,28 @@ class Task extends Command return $list; } + /** + * 消息空白字符过滤 + * @param string $content + * @param string $char + * @return string + */ + protected function _space($content, $char = ' ') + { + return preg_replace('|\s+|', $char, trim($content)); + } + + /** + * 判断是否包含字符串 + * @param string $content + * @param string $substring + * @return boolean + */ + protected function _issub($content, $substr) + { + return stripos($this->_space($content), $this->_space($substr)) !== false; + } + /** * 关闭任务进程 * @param integer $pid 进程号