2

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

4

0 に答える 0