Если у вас в фоне запущен воркер table_sync:work, и вы повторно вызовете table_sync:work, то увидите ошибку, что воркер уже запущен. Но тогда сработает деструктор:
|
public function __destruct() |
|
{ |
|
$this->pidManager->removePid(); |
|
} |
Он удалит pid и третий вызов table_sync:work позволит создать нового воркера, а за первым уже никак нельзя будет следить.
Предлагаю убрать в деструкторе удаление пида. Он должен удаляться только в конце handle() в finally.
Также, возможно, стоит задуматься о том, чтобы сделать поддержку работы нескольких воркеров.
Если у вас в фоне запущен воркер
table_sync:work, и вы повторно вызоветеtable_sync:work, то увидите ошибку, что воркер уже запущен. Но тогда сработает деструктор:php-table-sync/src/Integration/Laravel/Console/Commands/WorkCommand.php
Lines 15 to 18 in 4e415f6
Он удалит pid и третий вызов
table_sync:workпозволит создать нового воркера, а за первым уже никак нельзя будет следить.Предлагаю убрать в деструкторе удаление пида. Он должен удаляться только в конце handle() в finally.
Также, возможно, стоит задуматься о том, чтобы сделать поддержку работы нескольких воркеров.