Мой существующий проект Laravel таков, что все задачи выполняются последовательно. Я определил часть кода, которая может выполняться параллельно с использованием потоков PHP и может сократить время отклика.
Итак, я пытаюсь использовать pthreads, https://github.com/krakjoe/pthreads/tree/PHP5. Appserver.io уже поставляется с pthread, поэтому я запускаю проект на appserver.io, а не на apache.
Я смог успешно использовать pthread. Как при создании нового соединения PDO под run()
Метод для каждого потока и взаимодействия с базой данных работает нормально, используя собственный запрос, например:
self::$connection = new PDO ( 'mysql:host=127.0.0.1;dbname=mydb' , 'myuser' , 'mypass' );
Но я не могу использовать Laravel’s \DB:connection
так же. Мне нужно, чтобы это работало, чтобы запустить мой код, который написан на основе запросов ORM. Как я могу создать новое соединение каждый раз под run()
метод?
Разве вы не можете отправлять задания и просто запускать их в фоновом режиме (ставить в очередь)?
Две вещи, которые вы должны рассмотреть.
1. Вы должны загрузить файл поставщика в свои темы.
2. Вместо фасада используйте синглтон-класс в потоках.
Надеюсь, что это решит проблему.