in kong/kong/runloop/handler.lua [1082:1203]
before = function()
local prefix = kong.configuration.prefix or ngx.config.prefix()
STREAM_TLS_TERMINATE_SOCK = fmt("unix:%s/stream_tls_terminate.sock", prefix)
STREAM_TLS_PASSTHROUGH_SOCK = fmt("unix:%s/stream_tls_passthrough.sock", prefix)
if kong.configuration.host_ports then
HOST_PORTS = kong.configuration.host_ports
end
if kong.configuration.anonymous_reports then
reports.configure_ping(kong.configuration)
reports.add_ping_value("database_version", kong.db.infos.db_ver)
reports.toggle(true)
reports.init_worker()
end
update_lua_mem(true)
if kong.configuration.role == "control_plane" then
return
end
register_events()
timer_at(0, function()
balancer.init()
end)
local strategy = kong.db.strategy
do
local rebuild_timeout = 60
if strategy == "cassandra" then
rebuild_timeout = kong.configuration.cassandra_timeout / 1000
end
if strategy == "postgres" then
rebuild_timeout = kong.configuration.pg_timeout / 1000
end
if strategy == "off" then
RECONFIGURE_OPTS = {
name = "reconfigure",
timeout = rebuild_timeout,
}
elseif kong.configuration.worker_consistency == "strict" then
ROUTER_SYNC_OPTS = {
name = "router",
timeout = rebuild_timeout,
on_timeout = "run_unlocked",
}
PLUGINS_ITERATOR_SYNC_OPTS = {
name = "plugins_iterator",
timeout = rebuild_timeout,
on_timeout = "run_unlocked",
}
end
end
if strategy ~= "off" then
local worker_state_update_frequency = kong.configuration.worker_state_update_frequency or 1
local router_async_opts = {
name = "router",
timeout = 0,
on_timeout = "return_true",
}
local function rebuild_router_timer(premature)
if premature then
return
end
local ok, err = rebuild_router(router_async_opts)
if not ok then
log(ERR, "could not rebuild router via timer: ", err)
end
end
local _, err = kong.timer:named_every("router-rebuild",
worker_state_update_frequency,
rebuild_router_timer)
if err then
log(ERR, "could not schedule timer to rebuild router: ", err)
end
local plugins_iterator_async_opts = {
name = "plugins_iterator",
timeout = 0,
on_timeout = "return_true",
}
local function rebuild_plugins_iterator_timer(premature)
if premature then
return
end
local _, err = rebuild_plugins_iterator(plugins_iterator_async_opts)
if err then
log(ERR, "could not rebuild plugins iterator via timer: ", err)
end
end
local _, err = kong.timer:named_every("plugins-iterator-rebuild",
worker_state_update_frequency,
rebuild_plugins_iterator_timer)
if err then
log(ERR, "could not schedule timer to rebuild plugins iterator: ", err)
end
end
end,