Доработка backendа на php
Есть самописный backend на php (php-di, fast-route, aura sqlquery), отвечающий за прием входящих GET запросов, их обработку, формирование pdf документа, загрузку pdf в стороннее облако, взаимодействие со сторонней бд mysql и взаимодействие с api сервиса рассылок.
Сейчас при входящем GET запросе происходит поэтапное выполнение вышенаписанных действий, но при недоступности внешнего api, либо при недоступности внешнего сервера бд, процесс повисает и не завершается до конца. Также есть еще разные мелкие доработки, которые хотелось бы сделать.
Необходимо сделать:
1. Сделать ловлю ошибок по всему коду, чтобы все нештатные ситуации ловились, обрабатывались и записывались в лог.
2. Просмотреть код на наличие критичных ошибок, составить их список, дать рекомендации по их исправлению и исправить их.
3. Разделить основную логику скрипта на отдельные процессы, чтобы скрипт отрабатывал обработку, формирование pdf, загрузку в облако и запись в бд сразу и отдавал ответ, не дожидаясь ответа от api сервиса рассылок.
4. Сделать простую админку на bootstrap c аутентификацией для просмотра логов.
5. Сделать страницу с логом всех входящих GET запросов (с сортировкой по дате, при заходе на страницу отображается текущий день и логи за текущий день), если какой-то входящий запрос не был обработан, пометить его, указать причину, сформировать кнопку, которая довыполнит неисполненное действие (не ответил сервер mysql - отправить запрос в бд заново, не ответил api сервиса рассылок - послать запрос по api заново, не ответило ни одного облако - загрузить pdf в облако и добавить запись в бд и тд)
6. При недоступности одного облака, автоматически загружать pdf в другое облако.
7. Добавить проверку легитимности входящего GET запроса (сверка секретной строки)
8. 1 GET запрос - запись/обновление в 1 бд в зависимости от переданного значения. Сейчас при выполнении скрипта идет коннект сразу к 2 серверам к 5 разным базам данных. При недоступности одного из серверов скрипт также не отрабатывает, нужно этот момент посмотреть и по возможности исправить.
9. Хочется дублировать все записи/обновления в бд в резервные бд на других серверах, но чтобы они совершались паралелльно и их выполнение не влияло на работу основных процессов.
10. Прикрутить отправку всех логов ошибок в личный телеграм.
Пожалуйста откликайтесь только если вы уже сталкивались с такими задачами и можете проконсультировать по своему опыту и грамотно реализовать необходимые изменения.
Просьба оценить примерно( -) стоимость данных работ при текущем ТЗ и указать ее в отклике.
Отклики посмотрю через 2-3 дня, заранее спасибо!
12.11.2022 18:13