gpt4 book ai didi

python - Dispatch 未正确路由内部队列请求

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:37 25 4
gpt4 key购买 nike

我有一个用户可以启动的进程,它将一堆项目插入队列中。该队列向工作人员的 url /pipeline/foo 发送请求处理程序从那里获取它。

消耗进入 /pipeline/foo 的项目的处理程序位于单独的模块 module-pipeline .

问题是在生产中dispatch.yaml似乎没有将队列发出的内部请求分派(dispatch)到正确的模块。但是,如果我手动向 URL 发送请求(作为用户在浏览器中插入 URL),它似乎会将我分派(dispatch)到正确的模块...

dispatch.yaml

application: my-app

dispatch:
- url: "*/pipeline/*"
module: module-pipeline

load-queue.py

# does some things before...

for url in urls_to_load:
task = taskqueue.Task(url='/pipeline/foo', params={'id': url.key.id()})
queue.add(task)

这在 dev_appserver 上工作正常,但是在生产中,当队列将请求发送到 pipeline/foo 时,这会工作得很好。它由默认模块处理(返回 404,因为它没有在那里实现),而如果我通过浏览器手动发送相同的请求(GET 请求),它将由 module-pipeline 处理。

有什么问题吗?

最佳答案

queue.yaml 中定义队列时尝试使用参数 target,而不是在 dispatch.yaml 中定义路由。

目标参数

A string naming a module/version, a frontend version, or a backend, on which to execute all of the tasks enqueued onto this queue.

处理程序运行的模块(或前端或后端)和版本由以下因素确定:

  • 调用 Task() 构造函数时的目标或 header 关键字参数。
  • queue.yaml 文件中的目标指令。

关于python - Dispatch 未正确路由内部队列请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606103/

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