2

我正在使用 Django、Celery、Eventlet 和 dnspython 来异步解析大约 500 个 rss 提要。

当我尝试同时解析 20 多个提要时,使用 dnspython 会导致“查找超时”错误。当我卸载 dnspython 时一切正常,但我失去了一些时间,因为 dns 查找阻塞了 celery 池。您有什么想法可以解决吗?

这是我的芹菜任务代码:

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