Google App Engine queue.yaml无法在开发服务器中运行

时间:2017-09-24 22:31:04

标签: python google-app-engine

我无法让dev_appserver.py识别我使用queue.yaml创建的自定义队列。它们没有出现在http://localhost:8000/taskqueue中,当我尝试向它们添加任务时,我得到了UnknownQueueError。它在生产环境中工作正常。

我在Windows 10上使用python 2.7。

queue.yaml中

total_storage_limit: 5G
queue:
- name: not-queue-a
  bucket_size: 500
  rate: 10/s
  retry_parameters:
  task_retry_limit: 2
  min_backoff_seconds: 10
  target: msnot
- name: ui-worker
  target: msbui
  bucket_size: 200
  rate: 1/s
  retry_parameters:
  task_retry_limit: 4
  min_backoff_seconds: 1

我的项目结构是这样的:

    |-- root
        |-- queue.yaml
        |-- index.yaml
        |-- dispatch.yaml
        |-- cron.yaml
        |-- microservice1
            |-- app.yaml
            |-- microservice1.py
        |-- microservice2
            |-- app.yaml
            |-- microservice1.py
        |-- microservice3
            |-- app.yaml
            |-- microservice3.py
        |-- microservice4
            |-- app.yaml
            |-- microservice4.py

我尝试将queue.yaml的副本添加到microservice-sub文件夹中,但我仍然遇到了同样的问题。我还重启了dev_appserver.py几次。

1 个答案:

答案 0 :(得分:1)

当我将我的应用分成多个服务时,我遇到了同样的问题,dev_appserver.py没有完全赶上多服务应用。我通过对每个服务中的queue.yaml文件进行符号链接来解决这个问题:

    |-- microservice1
        |-- app.yaml            
        |-- microservice1.py
        |-- queue.yaml -> ../queue.yaml

可能只需要default服务,但我不完全确定,我没有尝试过。

注意:我对其他应用级配置文件应用了类似的方法。另请参阅Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?