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