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