2016-04-06 3 views
0

Я пытаюсь работать с очередями в Google App Engine, но я не понимаю точку, после того, как снова и снова читая документ:Как GAE обнаруживает правильный обработчик для очереди задач?

Если я определяю очереди в queue.yaml вроде этого:

queue: 
- name: invoice 
    rate: 2/m 

И обработчик в app.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}) 

Как Google сопоставляет очередь «счета-фактуры» с моим скриптом?!

я видел на примере онлайн, что обработчик URL является следующее (адаптированный):

url: /_ah/queue/invoice 

ли добавление /_ah/queue/ поможет GAE карту queue_ name с правом обработчика?

ответ

1

Задачи Push ссылаются на их реализацию по URL-адресу. Если вы не укажете уборщица URL, задача использует работник по умолчанию URL в имени очереди:

/_ah/queue/[queue_name] 

по умолчанию URL очереди в используется, если, и только если задача не имеет работник URL из его своя. Если у задачи есть свой собственный рабочий URL-адрес, она вызывается только на рабочем 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.

0

Файл queue.yaml является конфигурации прикладного уровня (вместе с dispatch.yaml, cron.yaml, index.yaml и dos.yaml).

Определение очередей из файла queue.yaml доступны любого файла в коде приложения, они не являются (и они не должны быть) сопоставляются с конкретным файлом. Подумайте о глобалах.

Смежные вопросы