GAE如何为任务队列检测正确的处理程序?

2024-04-25 05:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在谷歌应用程序引擎中处理队列,但我不明白一点,在反复阅读文档之后:

如果我在中定义一个队列队列.yaml像这样:

queue:
 - name: invoice
   rate: 2/m

还有一个处理程序附录yaml像这样:

handlers:
- url: /tasks/invoice
  script: invoice.py
  login: admin

我添加如下任务(Python):

taskqueue.add(queue_name='invoice', name='invoice-{0}'.format(str(datetime.datetime.now()),), params={'id': id})

谷歌如何将“发票”队列映射到我的脚本?!你知道吗

我在网上的一个示例中看到,处理程序url如下(改编):

url: /_ah/queue/invoice

添加/_ah/queue/是否有助于GAE将队列name映射到正确的处理程序?你知道吗


Tags: name文档引擎id应用程序url处理程序yaml
2条回答

queue.yaml文件是一个应用程序级别的配置(与dispatch.yamlcron.yamlindex.yamldos.yaml一起)。你知道吗

queue.yaml文件中的队列定义可用于应用程序代码中的任何文件,它们不(也不需要)映射到特定文件。想想全球人。你知道吗

推送任务通过URL引用它们的实现。如果未指定工作URL,则任务将使用以队列命名的默认工作URL:

/_ah/queue/[queue_name]

当且仅当任务本身没有工作URL时,才使用队列的默认URL。如果一个任务有自己的worker URL,那么它只在worker URL处被调用。你知道吗

# Add the task to the 'queue1' queue and use explicit handler (/path/to/your/handler/)
taskqueue.add(queue_name='queue1', url='/path/to/your/handler/', params={'key': value})

# Add the task to the 'queue1' queue and use the default handler (/_ah/queue/queue1)
taskqueue.add(queue_name='queue1', params={'key': value})

你可以找到更多的细节here。你知道吗

相关问题 更多 >