Всем доброе время суток, возникла задача запускать паралельно обработку некоторых операций из CLI написанных на symfony 4
сервер был собран с поддержкой zts тестовые примеры Thread отработали нормально
(тестовые примеры)
Но вот когда дело доходит до того что бы использовать его в фрэймворке начились проблемы
При запуске кода:
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use App\Worker\Worker;
class TestCommand extends Command
{
protected function configure()
{
$this->setName('app:test')
->setDescription('Description)
->setHelp('help ')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$thread = new Worker();
$thread->start() && $thread->join();
}
}
worker.php
namespace App\Worker;
class Worker extends \Thread
{
private $value;
private $executor;
public function __construct()
{
}
public function run()
{
echo "asd";
}
}
Возникает ошибка:
PHP Fatal error: Uncaught Exception: Serialization of 'Closure' is not allowed in [no active file]:0
Stack trace:
#0 {main}
thrown in [no active file] on line 0
/home/master/php-src-php-7.2.2/main/main.c(1248) : Bailed out without a bailout address!
Нашел связанные вопросы:
Но я так и не понял как решить данную проблему.
Еще наткнулся на вот этот код:
https://github.com/krakjoe/pthreads-autoloading-co...
Но не понял как его применить касательно моего случая.
Подскажите пожалуйста как вылечить этот баг? кто сталкивался с данной проблемой?