相关文章推荐
苦恼的馒头  ·  Using RBAC, Generally ...·  4 月前    · 
绅士的大脸猫  ·  15 vulnerabilities (7 ...·  6 月前    · 
深情的脆皮肠  ·  NSAppleMusicUsageDescr ...·  1 年前    · 

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