dnspython и "Время ожидания истекло"

Я использую Django, Celery, Eventlet и dnspython для асинхронного анализа около 500 RSS-каналов.

Использование dnspython приводит к ошибке "истекло время ожидания", когда я пытаюсь проанализировать более 20 каналов одновременно. Когда я удаляю dnspython, все работает отлично, но я теряю время, потому что поиск в dns блокирует пул сельдерея. У вас есть идеи, как это можно исправить?

это мой код задачи сельдерея:

import eventlet
feedparser = eventlet.import_patched('feedparser')
from celery import group

@task(ignore_result=True)
def update_feeds():
    group(update_feed.s(feed) for feed in Feed.objects.filter(active=True)).apply_async()

@task(ignore_result=True)
def update_feed(feed):
    parsed_feed = feedparser.parse(feed.feed_url, etag=feed.etag, modified=feed.modified)
    # It fails when I have dnspython installed returning <urlopen error (-3, 'Lookup timed out')> error

Я использую Ubuntu 12.04 LTS

0 ответов

Другие вопросы по тегам