freeswitch下基于lua定时任务的正确使用姿势
很多时候我需要在freeswitch开启一些定时器。
去执行一些指定的清理,扫描以及上报的任务。
以前这部分都是写在C里面的,创建一个新的模块,启动一个线程,去处理相关的事物。
感觉方式太老土了,而且在freeswitch迁移上不方便。
于是想想,可否把定时器开启在lua脚本上?
答案当然是可以的。
写一个lua脚本,定时执行即可。
--add by freeeyes
--测试定时器
timer_second = 300
json = dofile("XXX/json.lua");
api = freeswitch.API();
--luarun test.lua {"runtype":"true"}
api = freeswitch.API();
function debug(s)
freeswitch.consoleLog("info", "[time]".. s .. "\n")
function do_timer(timer_run_type)
if timer_run_type ~= nil then
if timer_run_type == "true" then
timer_avg_str = "+".. timer_second .. " none luarun test.lua {\"runtype\":\"true\"}"
api:execute("sched_api", timer_avg_str)
debug("start timer")
debug("stop timer")
debug("plsease input timer_run_type")
local timer_run_type = nil
if argv[1] ~= nil then