一个典型的 rq 使用示例如下:
import requests def count_words_at_url(url): resp = requests.get(url) return len(resp.text.split()) from redis import Redis from rq import Queue from worker import count_words_at_url q = Queue(cOnnection=Redis()) result = q.enqueue(count_words_at_url, 'http://nvie.com') 但是我希望生产者( main.py )和消费者( worker.py )代码是解耦的,就是不要在 main.py 中 from worker import count_words_at_url ,生产者只知道要调用函数名和参数,比如类似下面这样的形式:
result = q.send_task(task_name="count_words_at_url", args=["http://nvie.com",]) 这样,我就可以把 worker 的代码项目单独独立出去,而 main.py 项目里完全不会有 count_words_at_url 函数的相关实现。
我知道 celery 是可以这样实现的,我的问题是 rq 、huey 、dramatiq 这三个库可以实现出这样吗?
