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 を使用しています