Найти - Пользователи
Полная версия: Небольшой прокси-сервер с записью лога в mysql
Начало » Network » Небольшой прокси-сервер с записью лога в mysql
1
altRUist
Здравствуйте, у меня такой вопрос:

пользователи делают запрос http-запрос на сервер сервер перенаправляет этот запрос на другой сервер, записывая лог запроса в БД.

здесь занимает кое-какое время открытие соединения со вторым сервером (на который происходит перенаправление запроса)
можете посоветовать как это лучше сделать (например использовать fork или threading) какую библиотеку использовать для соединения с MySQL базой?
статью Forking vs Threading http://www.geekride.com/fork-forking-vs-threading-thread-linux-kernel/ читал, но, честно говоря, не совсем понимаю, что для меня лучше использовать
(соединение со вторым сервером может открываться до 10 с, а входящих запросов может быть до 4 в сек)
в документации к SocketServer написано
These four classes process requests synchronously; each request must be completed before the next request can be started. This isn’t suitable if each request takes a long time to complete, because it requires a lot of computation, or because it returns a lot of data which the client is slow to process. The solution is to create a separate process or thread to handle each request; the ForkingMixIn and ThreadingMixIn mix-in classes can be used to support asynchronous behaviour.
т.е. при использовании ThreadingMixIn будут запросы асинхронно обрабатываться?
s0rg
Twisted идеален для таких задач
altRUist
10 Mb кода и при этом мне оттуда нужен только Echo-сервер
s0rg
10 Mb кода
Безусловно намного лучше написать свой велосипед, а потом спрашить на форумах, почему же у него колеса в разные стороны крутятся…
altRUist
лучше так, чем потом спрашивать почему у чужого велосипеда перестали крутиться колеса через тысячу километров вдали от дома, и как оно все работает и как починить…
разобраться в 30 строках неправильного кода я считаю проще чем в 10 мегабайтах правильного.
zheromo
http://pythonpaste.org/modules/proxy.html

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB