diff --git a/application/admin/queue/task/Listen.php b/application/admin/queue/task/Listen.php index b83562c34..6c646ce81 100644 --- a/application/admin/queue/task/Listen.php +++ b/application/admin/queue/task/Listen.php @@ -57,13 +57,9 @@ 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" . DIRECTORY_SEPARATOR . "process.exe {$command}"; - } else { - $this->cmd = "{$this->bin} xtask:_work {$item['id']} -"; + $this->cmd = __DIR__ . DIRECTORY_SEPARATOR . "bin" . DIRECTORY_SEPARATOR . "process.exe {$this->cmd}"; } if ($this->checkProcess()) { $output->comment("处理任务的子进程已经存在 --> [{$item['id']}] {$item['title']}"); diff --git a/application/admin/queue/task/Start.php b/application/admin/queue/task/Start.php index d0fc4f1e2..8bd9c4937 100644 --- a/application/admin/queue/task/Start.php +++ b/application/admin/queue/task/Start.php @@ -51,7 +51,6 @@ class Start extends Task $this->setWinProcess(); $this->createProcess(); $this->setBaseProcess(); - $output->writeln('正在检查异步任务监听主进程状态...'); sleep(1); if (($pid = $this->checkProcess()) > 0) { $output->info("异步任务监听主进程{$pid}启动成功!"); @@ -69,10 +68,7 @@ class Start extends Task 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" . DIRECTORY_SEPARATOR . "process.exe {$command}"; + $this->cmd = __DIR__ . DIRECTORY_SEPARATOR . "bin" . DIRECTORY_SEPARATOR . "process.exe {$this->bin} xtask:listen"; } } } diff --git a/application/admin/queue/task/bin/process.exe b/application/admin/queue/task/bin/process.exe index 1a19fa6cd..e2621b7ad 100644 Binary files a/application/admin/queue/task/bin/process.exe and b/application/admin/queue/task/bin/process.exe differ