Если Вам не нужно распределенное решение, а что-то простенькое, то вполне подойдет паттерн Observer
en.wikipedia.org/wiki/Observer_pattern. Как конкреную оеализацию, могу посоветовать Symfony Event Dispatcher компонент
symfony.com/doc/current/components/event_dispatcher/introduction.html.
Если же хотите, чтобы очередь работала асинхронно. То, как уже советовали или react.php. Или если нет проблемы с установкой настройкой дополнительного софта, поставьте какой-нибудь сервер очередей (например, ActiveMQ
activemq.apache.org/) и работайте с ним из PHP.