Имея проблемы со многими сессиями, файлы создаются иногда до 400 000! Я думал, что я мог бы обнаружить, если переменная сеанса не является Ни помощью получить, но как ни странно проверки переменной сеанса фактически создает сеансовый файл:Cherrypy создает сотни тысяч сеансов в день для сайта, получающего 500 уникальных пользователей. Должно ли это быть обработано следующим образом?
if(cherrypy.session.get('Something')):
Я знаю, файл сеанса создать для каждого запроса, но если я не запустите cherrypy.session.get, файл сеанса удаляется. Если вы запустите следующий код на Cherrypy 3.2.4 после запроса 127.0.0.1:8080/main , файл сеанса удаляется.
import cherrypy
class Root:
def main(self):
return 'Howdy'
main.exposed = True
cherrypy.config.update({'tools.sessions.on': True,
'tools.sessions.storage_type': "File",
'tools.sessions.storage_path': 'sessions',
'tools.sessions.timeout': 1440
})
cherrypy.quickstart(Root(),'/')
Однако выполнение этого кода создаст переменную сеанса, которая будет таймаут в 1440 минут.
import cherrypy
class Root:
def main(self):
if(cherrypy.session.get('Something')):
asdf = 'asdf'
return 'Howdy'
main.exposed = True
cherrypy.config.update({'tools.sessions.on': True,
'tools.sessions.storage_type': "File",
'tools.sessions.storage_path': 'adf',
'tools.sessions.timeout': 1440
})
cherrypy.quickstart(Root(),'/')
Итак, как я могу проверить, если пользователь имеет переменную сеанса без создания файла сеанса на стороне сервера, который не удаляется?
Любая помощь будет оценена, Эндрю
Почему у вас так много сеансов? Вы не используете статические файлы с CherryPy и сеансами, не так ли? – jwalker
Нет - nginx служит для моего статического контента. Мы считаем, что это боты, генерирующие лишние сеансы. –
Когда обычный пользователь делает первый запрос, получает ли он фиксированный идентификатор сеанса, так как у него нет файла cookie? Как запрос бота отличается от обычного запроса пользователя? – jwalker