Как opencpu генерирует идентификаторы сеансов и в какой области эти идентификаторы уникальны? - PullRequest
0 голосов
/ 18 июня 2020

Итак, мы знаем, что каждый раз, когда opencpu получает запрос POST, он создает сеанс с уникальным идентификатором сеанса. Например, «x05b85461».

Я хотел бы знать, как opencpu генерирует эти идентификаторы и в какой области эти идентификаторы уникальны? Здесь у меня два варианта использования:

Случай 1:

  1. Отправил запрос POST в opencpu и получил идентификатор сеанса, например «x05b85461», который содержит объект R.
  2. Мы запоминаем этот идентификатор на стороне клиента для будущего использования.
  3. По истечении 24 часов по умолчанию этот сеанс удаляется автоматически.
  4. Мы отправляем запрос GET, чтобы потребовать этот сеанс.

На шаге 4, поскольку сеанс уже был удален, предполагается, что будет возвращен код 404. Однако возможно ли, что после очистки будет создан другой сеанс с точно таким же идентификатором сеанса? Тогда это может быть серьезной проблемой.

Случай 2:

Таким образом, сценарий будет заключаться в том, что мы масштабируем приложение и используем несколько машин, на каждой из которых запущен экземпляр opencpu, но все это узлы совместно используют одно временное хранилище для хранения сеансов. Гарантируется ли, что идентификаторы сеансов, созданные разными узлами, уникальны в общем хранилище? Если нет, кстати, что может быть лучшим способом масштабирования приложения?

...