В настоящее время я пытаюсь ставить задачи в App Engine с использованием флеш-фреймворка, но у меня есть некоторые трудности. Я запускаю свой код, и кажется, что задачи правильно поставлены в очередь, когда я проверяю сервер администратора на localhost: 8000/taskqueue. Однако консоль повторно печатает следующую ошибку:Сервер разработки App Engine не выполняет задачу с очередью - без трассировки стека вообще
WARNING 2016-10-05 17:08:09,560 taskqueue_stub.py:1981] Task task1 failed to execute. This task will retry in 0.100 seconds
Кроме того, похоже, что желаемый код не выполняется.
Мой вопрос: почему мой код не работает? Я прошу прощения за очень широкий вопрос, однако нет трассировки стека, чтобы привести меня к чему-то более конкретному. Однако я упростил свой код, чтобы сделать мою ошибку воспроизводимой. Код ниже должен печатать фразу «пример задачи» на консоль 5 раз. Однако этого не происходит.
#main.py
from google.appengine.api.taskqueue import taskqueue
from flask import Flask, Response
app = Flask(__name__)
@app.route("/get")
def get():
for i in range(5):
# attempt to execute the desired function 5 times
# the message "sample task" should be printed to the console five times
task = taskqueue.add(
queue_name='my-queue',
url='/sample_task',
)
message += 'Task {} enqueued, ETA {}.<br>'.format(task.name, task.eta)
response = Response(message)
return response
@app.route("/sample_task")
def sample_task():
message = "sample task"
print (message)
return Response(message)
if __name__ == "__main__":
app.run()
app.yaml
# app.yaml
runtime: python27
api_version: 1
threadsafe: true
# [START handlers]
handlers:
- url: /sample_task
script: main.app
login: admin
- url: /get
script: main.app
login: admin
queue.yaml
# queue.yaml
queue:
- name: my-queue
rate: 1/s
bucket_size: 40
max_concurrent_requests: 1
@Anthon: Спасибо, что нашли время, чтобы решить мой вопрос. Обратные кавычки есть, потому что у меня создалось впечатление, что они необходимы для создания блоков кода здесь, в StackOverflow. Похоже, я ошибся. Спасибо, что указали это. Кодовые блоки теперь исправлены. Более того, я уже нашел, как решить проблему. Похоже, мне просто нужно добавить 'методы = 'POST'' в входные параметры маршрутизатора. Но все же спасибо за проверку кода. –