Как запустить Thread в symfony 4?

Всем доброе время суток, возникла задача запускать паралельно обработку некоторых операций из 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...
Но не понял как его применить касательно моего случая.

Подскажите пожалуйста как вылечить этот баг? кто сталкивался с данной проблемой?
  • Вопрос задан
  • 573 просмотра
Решения вопроса 1
@ff0xff Автор вопроса
Вот этот метод мне помог, там чувак все подробно рассказывает почему symfony не работает и как это починить.
https://github.com/krakjoe/pthreads-autoloading-co...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы