Похоже на случай для события / очереди сообщений.
Сгенерированные через Интернет события - регистрация, прямые сообщения подписчикам и т. Д. - добавляют сообщение / задачу / элемент в очередь работ / сообщений.Процесс cron потребляет очередь, фактически выполняя отправку.Обратите внимание, что здесь «сообщение» - это просто объект или запись в БД, содержащая информацию, достаточную для выполнения назначенной задачи: отправка сообщения типа X от отправителя / пользователя Y получателю / пользователю Z и т. Д. В нем даже могут быть поля аудита для текущего состояниякогда элемент был добавлен в очередь, когда он был завершен и т. д. Возможно, очередь очищается от выполненных задач через некоторое время.
С другой стороны, ваши веб-процессы - регистрация и т. д. - не подходятне ждем, пока эти сообщения исчезнут, поэтому клиент, ожидающий на стороне браузера, получает более быстрый веб-ответ.
С другой стороны, веб-процесс действительно не может точно знать, была ли выполнена задача;все, что он может знать, это то, что запрос был передан в очередь для возможной обработки.
Тем не менее, вы можете предложить пользователю веб-интерфейсы, которые сообщают о состоянии ожидающих / завершающих запросов.и этого может быть достаточно.
Просто мысли вслух ...; -)