Очередь запросов к бд

Ребята, привет!
Подскажите, пожалуйста, как сделать очередь запросов при таком ТЗ
С целью снижения нагрузки на сервер и распараллеливания процессов применяются очереди заданий, реализованные с помощью:
1. mysql — те очереди, данные из которых нельзя потерять в случае зависания/перезагрузки сервера
2. redis – все прочие очереди заданий.
Задание из очереди выполняется не раньше, чем указанное в нём время выполнения. При постановке в очередь время выполнения заданий может быть следующим:
1. Выполнить немедленно
2. Выполнить по очереди после всех заданий
3. Выполнить в указанное время

Колонки в таблице клиентом предлагаются такие (он просто написал тз с чуть ли не потабличным описанием БД, ибо думал, что будет фреймворк, но никто не взялся)
Id задания
Тип очереди (отправка email, sms, запросы к API 1C)
requestId
Дата и время постановки в очередь
Очерёдность выполнения (немедленно, по очереди, в указанное время)
Дата и время выполнения
Порядковый номер попытки выполнения
Тип задания
Обработчик
Пытаюсь понять, как это реализовать в рамках терминологии и объектов modx. Т.е. как минимум создать свою таблицу, класс и создать все мапы и разделы через например CMPConfigurator или MIGX Configurator. Это могу, делал.
1. Что именно хранить в этой таблице относящееся к запросу?
2. Возможно ли вообще сделать такую унификацию задач?
3. Хранить ли все такие задания в одной таблице или как минимум в разные по времени выполнения скрипта(немедленные, в указанное время, очередь после всех заданий)?
4. Это все вешать на крон? как тогда возвращать ответ пользователю?
5. Если абстрагироваться от того, что предложено, как бы вы сами реализовали очередь запросов на php?

Просто пока думаю, в какую сторону копать и не могу решить.
Ilya Gureshidze
31 июля 2019, 18:10
modx.pro
551
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0