Выполнить операцию в отдельном потоке

85
12 сентября 2021, 05:00

Есть сайт, работает на PHP 7.3 + PHP-FPM. Необходимо отправлять push уведомления при определенных событиях, которые происходят при взаимодействиях с сайтом. Мне бы не хотелось, чтобы отправка пушей задерживала время ответа. Возможно ли отправить эти пуши без боли просто в другом потоке примерно как-то так:
new Thread()-> run(function(){ sendPush! });

Без отдельных воркеров, очередей. Или на php-fpm это не возможно и нужен асинхронный веб сервер?

Answer 1

Таких возможностей в PHP нет. Можно сделать Sheduler, который по крону проверяет наличие актуальных задач и будет отправлять push уведомления, либо отдельный сервис-демон, желательно не на PHP (но если хочется можно и на нем), который будет через Redis, а еще лучше через RabbitMQ принимать задачи. В конечно итоге это пригодится, как воркер выполняющий отложенные задачи, или задачи, которые не нужно выполнять в главном потоке. А сам сайт так и останется на PHP без необходимости отказываться от CMS (будь то Wordpress, или CS-Cart).

READ ALSO
Фильтрация списка через api/php

Фильтрация списка через api/php

Всем привет, сделал подключение по api при подключении подучил код ответа 200 и список: Теперь мне нужно сделать фильтр по запросу городов и выдачи...

111
Не отображает изображения на сайте

Не отображает изображения на сайте

Такая проблема -не отображает изображения на сайтеПерепробовал много способов - и в ту же директорию вставлял изображение и в корень сайта

433
Задать универсальный роут

Задать универсальный роут

Пробую делать spa приложение на ZF3Нужен универсальный роут

149
Парсер на php как взять текст

Парсер на php как взять текст

Всем привет! Есть страница: https://wwwbetexplorer

195