修复worker等待状态bug
This commit is contained in:
parent
ea32a4cd33
commit
104ad3f744
@ -129,7 +129,6 @@ class ManageProcess
|
|||||||
// 向 process 投递 cron
|
// 向 process 投递 cron
|
||||||
// var_dump(serialize($cron));
|
// var_dump(serialize($cron));
|
||||||
//$process->push(serialize($cron));
|
//$process->push(serialize($cron));
|
||||||
var_dump($process->pop());
|
|
||||||
} else {
|
} else {
|
||||||
// 创建临时 process 处理,处理完自动销毁
|
// 创建临时 process 处理,处理完自动销毁
|
||||||
$this->createProcess($cron);
|
$this->createProcess($cron);
|
||||||
@ -183,6 +182,8 @@ class ManageProcess
|
|||||||
*/
|
*/
|
||||||
protected function initProcesses()
|
protected function initProcesses()
|
||||||
{
|
{
|
||||||
|
file_put_contents($this->getProcessStatusPath(), '');
|
||||||
|
|
||||||
for ($i = 0; $i < $this->staticNum; $i++) {
|
for ($i = 0; $i < $this->staticNum; $i++) {
|
||||||
|
|
||||||
$process = $this->createStaticProcess();
|
$process = $this->createStaticProcess();
|
||||||
|
@ -94,12 +94,14 @@ trait Process
|
|||||||
|
|
||||||
// 获取等待状态的 worker
|
// 获取等待状态的 worker
|
||||||
$processes = $this->getProcessesStatus();
|
$processes = $this->getProcessesStatus();
|
||||||
|
// $processIds
|
||||||
foreach ($processes as $process) {
|
foreach ($processes as $process) {
|
||||||
if ($process['status'] == self::WAITING) {
|
if ($process['status'] == self::WAITING) {
|
||||||
$pid = $process['pid'];
|
$pid = $process['pid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取相应的状态
|
// 获取相应的状态
|
||||||
if (isset($this->processes[$pid])) {
|
if (isset($this->processes[$pid])) {
|
||||||
return [true, $this->processes[$pid]];
|
return [true, $this->processes[$pid]];
|
||||||
|
@ -35,9 +35,11 @@ trait Store
|
|||||||
*/
|
*/
|
||||||
public function storeStatus(array $status)
|
public function storeStatus(array $status)
|
||||||
{
|
{
|
||||||
if (file_exists($this->getProcessStatusPath())) {
|
|
||||||
|
|
||||||
$workersStatus = $this->getProcessesStatus();
|
$workersStatus = $this->getProcessesStatus();
|
||||||
|
if (empty($workersStatus)) {
|
||||||
|
$this->writeStatusToFile([$status]);
|
||||||
|
} else {
|
||||||
// ['PID',, 'START_AT', 'STATUS', 'DEAL_TASKS', 'ERRORS', 'running_time', 'memory'];
|
// ['PID',, 'START_AT', 'STATUS', 'DEAL_TASKS', 'ERRORS', 'running_time', 'memory'];
|
||||||
$pids = array_column($workersStatus, 'pid');
|
$pids = array_column($workersStatus, 'pid');
|
||||||
|
|
||||||
@ -52,8 +54,6 @@ trait Store
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->writeStatusToFile($workersStatus);
|
$this->writeStatusToFile($workersStatus);
|
||||||
} else {
|
|
||||||
file_put_contents($this->getProcessStatusPath(), \json_encode([$status]));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user