مرونة البحث HTTPConnectionPool(host='127.0.0.1', port=9200):ماكس المحاولات تجاوز

StackOverflow https://stackoverflow.com//questions/21015135

سؤال

لدي مرونة البحث الخادم التي أنا الاستعلام سواء من موقع لايف ومن خلال جانغو إدارة الأوامر.إدارة الأوامر يعمل باستخدام الكرفس فاز في 3 صباحا بتوقيت جرينتش إلى مزامنة البيانات من خارج الخدمة.في بعض الأحيان (ولكن ليس كل الوقت) هذا الأمر هو تشغيل مرنة يظهر البحث أن تحطم أحصل على الخطأ التالي في سجل أخطاء.

    [09/Jan/2014 08:03:46] ERROR [django.request:212] Internal Server Error: /
    Traceback (most recent call last):
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/django/core/handlers/base.py",
line 115, in get_response
        response = callback(request, *callback_args, **callback_kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/django/views/generic/base.py",
line 68, in view
        return self.dispatch(request, *args, **kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/django/views/generic/base.py",
line 86, in dispatch
        return handler(request, *args, **kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/django/views/generic/base.py",
line 153, in get
        context = self.get_context_data(**kwargs)
      File
"/srv/www/site.co.uk/clothes_comparison/clothes_comparison/views.py",
line 56, in get_context_data
        fields=['id', 'name', 'price', 'images', 'advertiser']
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/pyelasticsearch/client.py",
line 96, in decorate
        return func(*args, query_params=query_params, **kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/pyelasticsearch/client.py",
line 512, in multi_get
        'GET', ['_mget'], {'docs': docs}, query_params=query_params)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/pyelasticsearch/client.py",
line 238, in send_request
        **({'data': request_body} if body else {}))
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/requests/sessions.py",
line 347, in get
        return self.request('GET', url, **kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/requests/sessions.py",
line 335, in request
        resp = self.send(prep, **send_kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/requests/sessions.py",
line 438, in send
        r = adapter.send(request, **kwargs)
      File
"/srv/www/site.co.uk/env/local/lib/python2.7/site-packages/requests/adapters.py",
line 327, in send
        raise ConnectionError(e)
    ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=9200): Max
retries exceeded with url: /_mget (Caused by <class 'socket.error'>: [Errno 111]
Connection refused)

أنا باستخدام pyelasticsearch للاتصال مرونة البحث التعليمة البرمجية التالية في بلدي settings.py ملف:

try:
    ES_CON
except NameError:
    ES_CON = None

if not ES_CON:
    ES_CON = ElasticSearch(ELASTICSEARCH_URI)

أي مساعدة سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

أود أن أقترح استخدام الرسمية ونحن الثعبان العميل: ونحن-py التي لديها اتصال موثوق بها التعامل ، هو موضوع آمنة وما إلى ذلك.بل هو أيضا أسرع (حسب الكاتب ، الذي هو جزء من ونحن فريق).

ثم هل يمكن أن يكون الخاصة بك es = Elasticsearch() إما في الجزء العلوي من tasks.py, أو في مثل core.helpers و استيراد es من هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top