Как должно работать: Клиенты отправляют файлы на сервер Если файл прошел проверку в БД пишется запись Один из пунктов проверки заглянуть в БД и проверить есть ли такой файл
Запись в БД вида: Клиент:сессия:filename:datetime
Как иногда работает:
сессия №1
Клиент первый раз отправляет файл, не получает ответ от сервера(например большая нагрузка на сервер), но запрос видимо стал в очередь. и в итоге отработал
сессия №2
Клиент второй раз отправляет файл - проверка говорит что в БД файла нет и скрипт отрабатывает добавляя при этом запись в БД
Разница во времени между сервером и клиентом в несколько секунд
в итоге: По логам клиента:
сессия №1 запрос стартовал в ...17:54
сессия №2 запрос стартовал в ...18:14
В БД
Клиент1:сессия №2:test.txt:...18:15
Клиент1:сессия №1:test.txt:...18:16
Время в БД передает php функцией date('Y-m-d H:i:s') AUTO_INCREMENT у первой строчки меньше чем у второй
Видим что сессия №2 обработалась быстрее.
Как такое может быть?
При загрузке сервера apache накапливает запросы, а потом выполняет их?
Если есть очередь почему не по порядку запросы выполняются?
Как запрос смог прожить 20 минут (с 17:54 по 18:15)? ответ на этот запрос уже никто не ждет.
Клиент ожидает ответ максимум 5 минут настройка в apache время выполнение скрипта также 5 минут
второй вопрос: в access.log
есть записи:
x.x.x.x - - [31/May/2019:18:26:43 +0300] «POST
x.x.x.x - - [31/May/2019:18:11:44 +0300] „POST
x.x.x.x - - [31/May/2019:18:26:47 +0300] „POST
Почему средняя запись стала не на своем месте(по времени)?