Я использую очередь задач в appengine с php, и у меня возникает ошибка, которая возникает при следующих обстоятельствах:
1) После того, как я использую «appcfg.py update» для обновления php-файла, который вызывает очередь задач, код работает около суток.
2) Неважно, какие аргументы post передаются при вызове задачи, ошибка все равно возникает.
3) Если я перезапущу appcfg, изменение чего-либо в файле PHP (т.е. IE, добавив один пробел в начале файла) приведет к тому, что ошибка исчезнет еще на один день или около того.
Следующий код — это то, что используется:
$task = new PushTask('taskhandler.php',
['alert_user_fillupdate' => $alert_user_fillupdate,
'alert_user_pickupupdate' => $alert_user_pickupupdate]
);
$task_name = $task->add();
Я также попытался добавить «default» в качестве аргумента в $ task-> add () без изменений в поведении:
$task = new PushTask('taskhandler.php',
['alert_user_fillupdate' => $alert_user_fillupdate,
'alert_user_pickupupdate' => $alert_user_pickupupdate]
);
$task_name = $task->add("default");
В любом случае код будет работать около суток, а затем appengine выдаст следующую ошибку, которую можно отложить на другой день, просто изменив что-либо в файле PHP и обновив:
PHP Fatal error: Uncaught exception 'google\appengine\runtime\ArgumentError' with message 'An error occurred parsing (locally or remotely) the arguments to taskqueue.BulkAdd().' in /base/data/home/runtimes/php/sdk/google/appengine/runtime/RealApiProxy.php:74
Трассировки стека:
#0 /base/data/home/runtimes/php/sdk/google/appengine/runtime/ApiProxy.php(40): google\appengine\runtime\RealApiProxy->makeSyncCall('taskqueue', 'BulkAdd', Object(google\appengine\TaskQueueBulkAddRequest), Object(google\appengine\TaskQueueBulkAddResponse), NULL)
#1 /base/data/home/runtimes/php/sdk/google/appengine/api/taskqueue/PushQueue.php(187): google\appengine\runtime\ApiProxy::makeSyncCall('taskqueue', 'BulkAdd', Object(google\appengine\TaskQueueBulkAddRequest), Object(google\appengine\TaskQueueBulkAddResponse))
#2 /base/data/home/runtimes/php/sdk/google/appengine/api/taskqueue/PushTask.php(292): google\appengine\api\taskqueue\PushQueue->addTasks(Array)
#3 /base/data/home/apps/*******/taskhandler.php(369): google\appengine\api in /base/data/home/runtimes/php/sdk/google/appengine/runtime/RealApiProxy.php on line 74
Что может быть причиной этой ошибки? Спасибо за помощь!
Задача ещё не решена.
Других решений пока нет …