Python, как сделать одно подключение к серверу с другого сервера? - PullRequest
2 голосов
/ 09 апреля 2019

Например, веб-сервер (Django / flask) будет общаться с сервером Elasticsearch.

Я нахожу следующий код и думаю, что requests.session() дает мне connection reuse (я прав в этом?)

class ElasticSearch(object):
    self.session = requests.session()
    ...

Всякий раз, когда я хочу поговорить с Elasticsearch, я делаюследующий

from elasticsearch import Elasticsearch
es = Elasticsearch()

Не создаст ли он объект questions.session, поэтому я создаю requests.session объект (таким образом, отдельное соединение) для каждого модуля, который я объявляю Elasticsearch()?

Что произойдет, если я создам экземпляр Elasticsearch() внутри функции / метода?Поскольку Elasticsearch() и self.session воссоздаются при каждом вызове функции, я не получаю повторного использования соединения?

def get_something_from_es(self):
    from elasticsearch import Elasticsearch
    es = Elasticsearch()

Должен ли я создать синглтон для Elasticsearch(), если я хочу использовать только 1 соединение?

Почему я не вижу такой код часто? (я гугл эластичный поисковый синглтон, почти ничего не выходит) Не очень хорошая идея поделиться этой связью?

ну, я думаю, это может стоить отдельного вопроса, но мне интересно знать лучшие практики использования requests library для соединения сервер-сервер.

  1. Я уверен, чтоasticsearch-py имеет ответ на вопрос (потому что у них есть реализация) .
  2. Хотя у них есть ответ на первыйвопрос, я не уверен, что я использую это правильно (Этот вопрос больше об этом)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...