Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

box.session.on_disconnect()

box.session.on_disconnect([trigger-function [, old-trigger-function]])

Определение триггера, выполняемого после отключения клиента. Если функция-триггер вызывает ошибку, ошибка записывается в журнал, но иначе игнорируется. Триггер вызывается, пока сессия, связанная с клиентом, еще существует и может обращаться к свойствам сессии, например box.session.id().

Начиная с версии 1.10 функция-триггер вызывается сразу после отключения, даже если запросы, сделанные во время сессии, еще не завершены.

Параметры:

  • trigger-function (function) — функция, которая станет триггерной функцией
  • old-trigger-function (function) — существующая триггерная функция, которая будет заменена на trigger-function

Возвращает

nil или указатель на функцию

Если параметры — (nil, old-trigger-function), то старый триггер удаляется.

Если оба параметра опущены, то в ответе возвращается список существующих триггерных функций.

Подробнее о характеристиках триггеров см. в разделе триггеры.

Пример 1

tarantool> function f ()         >   x = x + 1         > endtarantool> box.session.on_disconnect(f)

Пример 2

После следующей серии запросов экземпляр Tarantool будет записывать сообщение с помощью модуля log при подключении или отключении любого пользователя.

function log_connect ()  local log = require('log')  local m = 'Connection. user=' .. box.session.user() .. ' id=' .. box.session.id()  log.info(m)endfunction log_disconnect ()  local log = require('log')  local m = 'Disconnection. user=' .. box.session.user() .. ' id=' .. box.session.id()  log.info(m)endbox.session.on_connect(log_connect)box.session.on_disconnect(log_disconnect)

Вот что может появиться в файле журнала при типичной установке:

2014-12-15 13:21:34.444 [11360] main/103/iproto I>    Connection. user=guest id=32014-12-15 13:22:19.289 [11360] main/103/iproto I>    Disconnection. user=guest id=3