Суть - наткнулся на комментарий, где zmc жалуется что Asterisk на исполнение одного контекста несколько раз дергает lua-файл с диалпланом:
local log, err = io.open("/tmp/pbx_lua.log","a")
if log then
log:setvbuf("no")
log:write('--- iteration ---\n')
log:close()
end
extensions = {
lua = {
["000"] = function(context, extension)
app.Verbose("---------------- Test LUA Call -------------------------")
end
}
}
Я проверил - так и есть, несколько итераций на простом контексте.
Лучше новый tcp коннект, чем такое.
Но вопрос - а точно ли он дергает каждый раз файловую систему для перечитывания скрипта? Или держит в буфере? Если второе - то вроде как и не страшно.
$ stat /etc/asterisk/extensions.lua
File: /etc/asterisk/extensions.lua
Size: 2491 Blocks: 8 IO Block: 4096 regular file
Device: 900h/2304d Inode: 4718730 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 106/asterisk) Gid: ( 112/asterisk)
Access: 2023-03-14 17:36:50.566980520 +0300
Modify: 2023-03-14 17:36:46.975001482 +0300
Change: 2023-03-14 17:36:46.975001482 +0300
Birth: 2023-03-14 17:36:46.975001482 +0300
Access вроде не менялся после `module reload pbx_lua.so’. Это доказывает что файл больше не дергается и лежит в буфере?