You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python RQ队列调用enqueue报错:'tuple'对象没有__module__属性如何解决

错误原因

rq 队列的enqueue方法第一个入参要求为未执行的函数对象本身,你当前transmitter.py第23行的写法是直接执行了testPost(address, 0),将函数返回的三元组传给了enqueue。rq 内部解析参数时会尝试读取第一个入参的__module__属性,而元组没有该属性,因此触发AttributeError。

修复方案

直接修改transmitter.py中的testQueue函数即可,正确的enqueue传参方式为:第一个参数传入函数名(不要加括号执行),函数调用的参数放在args参数中传递:

def testQueue(address):
    # 仅传递函数对象testPost,参数通过args元组传入
    result = globe.queue.enqueue(testPost, args=(address, 0))
    return result
附加注意事项
  • 任务提交后需要启动rq worker进程才会执行队列中的任务,在项目根目录执行命令:rq worker
  • 若需要获取任务执行结果,需要等待任务执行完成后读取任务对象的return_value属性,示例如下(修改test2.py对应逻辑):
import time
# 其余导入代码不变

if __name__ == "__main__":
    result1 = trans.testPost(baseReceiverAddress + '/test', 0)
    print(result1)
    
    result_job = trans.testQueue(baseReceiverAddress + '/testQueue')
    # 等待任务执行完成
    while not result_job.is_finished:
        time.sleep(0.1)
    print(result_job.return_value)

内容的提问来源于stack exchange,提问作者BlaBla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:54:04