gpt4 book ai didi

redis - Python Reddis 队列值错误 : Functions from the __main__ module cannot be processed by workers

转载 作者:IT王子 更新时间:2023-10-29 05:55:30 33 4
gpt4 key购买 nike

我正在尝试使用 python-rq 在 redis 中加入一个基本的作业,但是它抛出了这个错误

"ValueError: Functions from the main module cannot be processed by workers"

这是我的程序:

import requests

def count_words_at_url(url):
resp = requests.get(url)
return len(resp.text.split())

from rq import Connection, Queue
from redis import Redis
redis_conn = Redis()
q = Queue(connection=redis_conn)
job = q.enqueue(count_words_at_url, 'http://nvie.com')
print job

最佳答案

将提供的代码分解为两个文件:count_words.py:

import requests

def count_words_at_url(url):
resp = requests.get(url)
return len(resp.text.split())

ma​​in.py(您将在其中导入所需的函数):

from rq import Connection, Queue
from redis import Redis
from count_words import count_words_at_url # added import!
redis_conn = Redis()
q = Queue(connection=redis_conn)
job = q.enqueue(count_words_at_url, 'http://nvie.com')
print job

我总是将任务与运行这些任务的逻辑分离到不同的文件中。这只是更好的组织。另请注意,您可以定义一类任务并从该类导入/安排任务,而不是我上面建议的(过度简化的)结构。这应该让你去..另见 here确认您不是第一个遇到这个例子的人。 RQ 很棒一旦你掌握了它。

关于redis - Python Reddis 队列值错误 : Functions from the __main__ module cannot be processed by workers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31012817/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com