Mysqli + ajax очередь запросов, реализация через ответ?
Доброе времени суток !
Вышла такая проблемка :
Через ajax ставлю автообновление каждую 1 секунду с запросов update , когда находиться 1 человек на ресурсе вполне нормально ведет себя сервер ,а когда больше 3-х создается очередь запросов ,которые могут обрабатываться от 1 секунды (первый запрос) до 1 минуты (последний запрос)....
Как это можно оптимизировать или сделать отправка повторного запроса только когда пришел ответ
P.S Пишу на PHP
Максим Тимофеев, идет запрос на обновление таблицы money например , каждую секунду находящиеся на сайте пользователь получает допустим 1 монету/сек .......
А так уже голова не работает толком ........
TheIsIt,
Писать лучше тогда не в базу раз в секунду, а в кеш, желательно что-то типа redis, что бы шустро работало.
Делать не через ajax, а через websocket и по окончанию соединения писать в базу что накапало.
Или придумать вариант где записывается время начала и после ухода время конца, а потом пишется сумма в базу. При этом пользователь может видеть js счетчик, который что-то считает.
Максим Тимофеев, я что то сразу не додумался то , сейчас сделаю кэш на 5 минут с последующий отправкой в базу ,можно даже не уходить далеко от стандартных функций php
Думаю такие задачи нельзя делать зависимыми от запросов с фронтенда, будут проблемы. Особенно если это касается денег. Нужно делать просчет в фоне, без участия фронтенда, по ключевым признакам. Но это будет на порядок сложнее в реализации
Виталий Хоменко, реализовал с созданием системного кэша в файле, который проверяет на сходство и заносом в базу спустя 5 минут и при этом нагрузка снизилась на 40%