你好呀,
这不是一个正确的问题,但我可以帮助我在这里找到一些帮助,因为我正在关注http://python-rq.org/docs/中描述的一个非常基本的 python-rq 示例,但它不能正常工作。
我创建了两个 python 文件,如下所示:
requests_test.py
`导入请求
def count_words_at_url(url):
resp = requests.get(url)
返回 len(resp.text.split())`
rq_test_1.py
`从 rq 导入队列
从 Redis 导入 Redis
进口时间
导入请求测试
redis_conn = Redis()
q = Queue('TT', connection=redis_conn) # 无参数表示默认队列
工作 = q.enqueue(requests_test.count_words_at_url, 'http://nvie.com')
打印(作业。结果)
时间.sleep(2)
打印(作业。结果)
所以我多次执行 rq_test_1.py 以便将作业添加到队列中。 之后,我通过在终端控制台 (Linux) 上键入“rqworker TT”来启动我的 worker。
工作人员获得了作业,但由于找不到 requests_test 模块,因此无法执行它们。
我做错了什么?
工人日志: https ://ibb.co/hiCQ7S
你的目录结构是什么样的? 您在哪个目录中启动工作人员? 如果您尝试“绕过工人”部分会发生什么:http: //python-rq.org/docs
请检查您的导入路径并确保您的代码可以导入requests
嗨, @selwin和@yosemitebandit ,我认为这不是这个问题的完美解决方案。 我将它与 Django 一起使用,我有一个类似的问题,RQ 的入队函数无法找到导入的函数,并且还想要一些具体的原因。 我也为此搜索了很多。 文档中也没有对此进行讨论。
大家好,我也面临同样的问题。
可以有一个样本或蓝图来了解为什么会发生这种情况。 我确定我的路径有些问题,但 3 小时后我没有解决这个问题。
@matabares如果您使用的是 Django 框架,则可以使用
import django
django.setup()
如果您不使用 Django,请确保将相关设置文件的路径提供给您的工作脚本。
我希望它会奏效。
对我来说,这部分文档很有用: https: //python-rq.org/docs/workers/#performance -notes
特别是,我通过以下方式启动我的工作人员的文件
w = Worker(qs)
w.work()
没有导入我试图添加到队列中的函数,因此工作人员不知道该函数存在
最有用的评论
你的目录结构是什么样的? 您在哪个目录中启动工作人员? 如果您尝试“绕过工人”部分会发生什么:http: //python-rq.org/docs