Возвращает пользователю сообщение « Превышена скорость. » и следующая ошибка в журналах: « Запрос был прерван после слишком долгого ожидания попытки обработать ваш запрос. »
Вот как я это проверил:
Я создал класс для подсчета истекшего времени, чтобы убедиться, что я действительно выполняю несколько параллельных запросов. И базовое c Python приложение, которое имеет функцию сна в течение 20 секунд. Затем в app.yaml я установил max-instance на 1, а max-одновременных запросов на 1. Затем, просто открыв 5 вкладок с URL-адресом приложения и запустив их одновременно, по крайней мере, одна из них потерпит неудачу с ошибками упоминалось выше.
Проверено на стандарте GAE
timer.py :
import time
class TimerError(Exception):
"""A custom exception used to report errors in use of Timer class"""
class Timer:
def __init__(self):
self._start_time = None
def start(self):
"""Start a new timer"""
if self._start_time is not None:
raise TimerError(f"Timer is running. Use .stop() to stop it")
self._start_time = time.perf_counter()
def stop(self):
"""Stop the timer, and report the elapsed time"""
if self._start_time is None:
raise TimerError(f"Timer is not running. Use .start() to start it")
elapsed_time = time.perf_counter() - self._start_time
self._start_time = None
print(f"Elapsed time: {elapsed_time:0.4f} seconds")
main.py :
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
import time
from timer import Timer
t = Timer()
t.start()
print('Started')
time.sleep(20)
t.stop()
return 'Hello World!'
if __name__ == '__main__':
needs.txt :
Flask==1.1.2
codetiming
app.yaml :
service: scaling
runtime: python37
instance_class: F1
automatic_scaling:
target_cpu_utilization: 0.65
min_instances: 1
max_instances: 1
min_pending_latency: 30ms # default value
max_pending_latency: automatic
max_concurrent_requests: 1
Развернуть:
gcloud app deploy
Затем: одновременно открыть 5 вкладок со ссылкой на развернутое приложение.
Результаты: Пользователь получает: " Превышена скорость. «GAE logs show: ERROR» Запрос был прерван после слишком долгого ожидания попытки обработать ваш запрос."