В моем приложении Bottle , работающем на pythonanywhere , я хочу, чтобы объекты сохранялись между запросами.
Если я напишу что-то вроде этого:
X = {'count': 0}
@route('/count')
def count():
X['count'] += 1
tpl = SimpleTemplate('Hello {{count}}!')
return tpl.render(count=X['count'])
Количество увеличивается, что означает, что между запросами сохраняется X.
В настоящее время я выполняю это на pythonanywhere , который является управляемой службой, где я не могу контролировать веб-сервер (nginx, я полагаю?) многопоточность, балансировка нагрузки (если есть) и т. д. *
Мой вопрос заключается в том, является ли это совпадением, потому что он использует только один поток при минимальной загрузке от меня, выполняющего мои тесты?
В целом, в какой момент это перестанет работать?Например, у меня есть более одного сервера с потоком / сокетом / экземпляром / балансировкой нагрузки и т. Д.? ... *
Помимо этого, каковы мои лучшие варианты, чтобы сделать что-то подобное (придерживаясь бутылки), даже если у меня естьперейти на сервер barebones.
Вот что Документы по бутылкам должны сказать о своем запросе объекте:
Потоково-безопасномэкземпляр LocalRequest.Если доступ осуществляется из обратного вызова запроса, этот экземпляр всегда ссылается на текущий запрос (даже на многопоточном сервере).
Но я не до конца понимаю, что это значит, или где глобальные переменныекак тот, который я использовал, в отношении многопоточности.