Очереди задач GAE и ошибка 302 «Ошибка приложения»

Я пытаюсь использовать Задачи на GAE для некоторых асинхронных процессов.

Я могу поместить задачу в очередь, но в журналах постоянно появляется ошибка 302 «Ошибка приложения», и они просто постоянно повторяют попытки.

Я делаю это в CodeIgniter, поэтому мне интересно, если параметр URL является неправильным?

Код:

$task = new PushTask('/path/to/endpoint', ['id' => $id]);
$task_name = $task->add();

Путь к конечной точке зависит от домена, но я думаю, что это может быть проблемой. Использование site_url () или base_url () не работает!

Мой контроллер конечной точки настроен на получение данных POST с помощью:

$id = $this->input->post('id');

app.yaml:

application: <project-name>
version: 1
runtime: php
api_version: 1
threadsafe: true

handlers:
- url: /.*
script: index.php

1

Решение

У меня была такая же проблема при переносе существующей программы. Задача имела несколько включенных файлов, и в одном из них был дополнительный «возврат заголовка (URL)». Это вызвало как 302, так и постоянную повторную попытку. Может быть, что-то подобное является причиной вашей проблемы.

Я также обнаружил, что любая ошибка в коде вызывала ответ заголовка за пределами диапазона 200-299, что приводило к повторной попытке задачи. Поскольку моей задачей является электронное письмо, которое отправляется несмотря на ошибку, я добавил файл queue.yaml с task_retry_limit: 0 для дополнительной защиты от отправки клиенту десятков одинаковых писем.

0

Другие решения

Была та же проблема, и причина была проста: обработчик для целевого url / _ah / queue / xxxxxxxxxxxx имел опечатку, поэтому GAE отправлял Http302 вместо ожидаемого 404 в этом случае. Как только я установил отображение URL в своем обработчике, это решило проблему.

0

По вопросам рекламы [email protected]