У меня возникли некоторые проблемы, связанные с искривленной платформой HTTP. В частности, я пытаюсь реализовать использование threads.deferToThread с обратными вызовами, чтобы обеспечить лучший параллелизм, который работает нормально, пока у вас не будет более высокой нагрузки трафика, пытающегося получить доступ к серверу одновременно. В этом случае обратные вызовы часто вообще не выполняются, и в транспорт ничего не записывается.
Короче говоря, при каждом запросе сервер будет обрабатывать пакеты, отправленные клиент внутри отложенного потока. Затем сервер записывает пакеты ответа в очередь, которые обратный вызов on_request_done затем удаляет из очереди и возвращает в качестве ответа. Как упоминалось ранее, это прекрасно работает с 1 или 2 клиентами.
Вот упрощенная версия кода, с которым я работаю:
У меня возникли некоторые проблемы, связанные с искривленной платформой HTTP. В частности, я пытаюсь реализовать использование threads.deferToThread с обратными вызовами, чтобы обеспечить лучший параллелизм, который работает нормально, пока у вас не будет более высокой нагрузки трафика, пытающегося получить доступ к серверу одновременно. В этом случае обратные вызовы часто вообще не выполняются, и в транспорт ничего не записывается. Короче говоря, при каждом запросе сервер будет обрабатывать пакеты, отправленные клиент внутри отложенного потока. Затем сервер записывает пакеты ответа в очередь, которые обратный вызов on_request_done затем удаляет из очереди и возвращает в качестве ответа. Как упоминалось ранее, это прекрасно работает с 1 или 2 клиентами. Вот упрощенная версия кода, с которым я работаю: [code]class HttpPlayer(Player): def __init__(self, address: str, port: int) -> None: super().__init__(address, port) self.queue = Queue() self.token = ""
if not (token := request.getHeader('token')): return self.handle_login_request(request)
if not (player := app.session.players.by_token(token)): request.setResponseCode(401) return b""
self.player = player return self.handle_request(request) [/code] Вот код, над которым я работаю, чтобы при необходимости получить дополнительную информацию: https://github.com/osuTitanic/anchor/blob/044a9b75dee8d36816bbb5d7af67dc8902f2d34e/app/http.py#L99 п>
У меня есть несколько Java-приложений, работающих внутри контейнеров Docker с использованием инфраструктуры Dropwizard (Jetty и т. д.). Перед ними также установлен обратный прокси-сервер Nginx als. Каждый контейнер выполняет свою работу и...
У меня возникла проблема с Redis при проверке существования ключа с помощью CrudRepository.existsById(). В обычных условиях все работает нормально, и ключ существует в Redis, но проблема возникает при высокой загрузке запросов или одновременном...
Мое многопоточное приложение Java получает «пул соединений, исчерпанные» ошибки при обработке высоких одновременных операций GRIDDB, несмотря на настройку настройки пула соединений.
Текущая конфигурация:
`properties props = new Properties ();...
Мое многопоточное приложение Java получает «пул соединений, исчерпанные» ошибки при обработке высоких одновременных операций GridDB, несмотря на настройку настроек пула соединений.
Текущая конфигурация:
Properties props = new Properties();...