Извините, если это не имеет смысла. Прошу прокомментировать, если требуется уточнение.Сохранение параллелизма в приложениях web.py по mod_wsgi
Я пишу небольшое приложение для загрузки файлов в web.py, которое я развертываю с помощью mod_wsgi + apache. У меня возникла проблема с управлением сеансами, и мне хотелось бы пояснить, как работает threading в web.py.
По существу я внедряю код в скрытое поле html-страницы, которую я визуализую, когда кто-то обращается к моей странице. Загрузка файла затем выполняется с помощью стандартного запроса POST, содержащего как файл, так и код. Затем я получаю прогресс файла, обновляя его в методе POST загрузки файлов и захватывая его с помощью запроса GET для другого класса. «Сессия» (извинения за это время довольно наивными) хранятся в объекте сеанса, как это:
class session:
def __init__(self):
self.progress = 0
self.title = ""
self.finished = False
def advance(self):
self.progress = self.progress + 1
Сеансов все хранятся в глобальном словаре в моем приложении сценария, а затем получить доступ с моим кодом (от ранее) в качестве ключа.
По какой-то причине мой прогресс, кажется, остается равным 0 и никогда не увеличивается. Я отлаживал пару часов, и я обнаружил, что два объекта сеанса, на которые ссылаются класс загрузки и класс прогресса, не совпадают. Однако два кода (насколько я могу судить) равны. Это сводит меня с ума, поскольку он работал без проблем на тестовом сервере web.py на моей локальной машине.
EDIT: После некоторых исследований кажется, что словарь может быть скопирован для каждого запроса. Я попытался помещать словарь в другой и импортировать, но это не работает. Есть ли еще какой-то другой способ использовать базу данных для «разделения» словаря сеансов?