Бывают ситуации когда нет смысла использовать серверы очередей, типа Rabbitmq, German, etc. Была задача - отправка писем пользователям, проверка на поступление оплаты.
Для этого было решено написать простой класс, который считывает сообщения из таблицы, удаляет сообщения, добавлят задачу в таблицу.
На тот момент я решил задачу с помощью Doctrine 2 + CI 2. Надеюсь, что общий принцип будет понятен, и это решение вы сможете подстроить под себя.