如何确定在使用Lua脚本的执行时间

如何确定在使用Lua脚本的执行时间,第1张

我把链接发到你消息里面了。

下载完成后把lua程序解压到任意文件夹假设是

d:\lua。

然后再修改系统环境变量path

在里面添加一个d:\lua

用分号与其他路径隔开。如何修改win环境变量你到网上搜搜。

随后你启动dos

输入

lua52

abclua

就可以启动lua解释器了。

然后你修改lua为扩展名的文件的打开方式,找到这个程序。

你双击lua文件也能执行了。

这个指定时间执行的一般用windows下的调度计划,或者linux下的cron吧。

lua本身不支持sleep函数,os库可以获取时间。如果要支持sleep函数可以先获取时间,然后sleep到指定的时间再执行。这个sleep可以有多种实现,比如用system执行一些命令行里可以延时的,或者调用c扩展之类的。参考一下 >

用ffi

local ffi = require("ffi")

fficdef[[

struct timeval {

long int tv_sec;

long int tv_usec;

};

int gettimeofday(struct timeval tv, void tz);

]];

local tm = ffinew("struct timeval");

function NewTimeKey()

ffiCgettimeofday(tm,nil);

local sec = tonumber(tmtv_sec);

local usec = tonumber(tmtv_usec);

return sec + usec 10^-6;

end

long currentTimeMillis = SystemcurrentTimeMillis();

DateFormat format = new SimpleDateFormat("yyyyMMddHHmm");

Date dDate = null;

try {

dDate = formatparse(StringvalueOf(currentTimeMillis));

} catch (ParseException e) {

eprintStackTrace();

}

DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = format2format(dDate);

Systemoutprintln(time);

osdate ([format [, time]])

返回一个包含日期及时刻的字符串或表。 格式化方法取决于所给字符串 format。

如果提供了 time 参数, 格式化这个时间 (这个值的含义参见 ostime 函数)。 否则,date 格式化当前时间。

如果 format 以 '!' 打头, 日期以协调世界时格式化。 在这个可选字符项之后, 如果 format 为字符串 "t", date 返回有后续域的表: year (四位数字),month (1–12),day (1–31), hour (0–23),min (0–59),sec (0–61), wday (星期几,星期天为 1 ), yday (当年的第几天), 以及isdst (夏令时标记,一个布尔量)。 对于最后一个域,如果该信息不提供的话就不存在。

如果 format 并非 "t", date 以字符串形式返回, 格式化方法遵循 ISO C 函数 strftime 的规则。

如果不传参数调用, date 返回一个合理的日期时间串, 格式取决于宿主程序以及当前的区域设置 (即,osdate() 等价于 osdate("%c"))。

在非 POSIX 系统上, 由于这个函数依赖 C 函数 gmtime 和 localtime, 它可能并非线程安全的。

感谢:>

FREESWITCH中录音你如果要搞到LUA脚本里就麻烦了,直接在dialplan里面就能录音。

<action application="set" data="execute_on_answer=record_session /data/media/${strftime(%Y%m%d)}/${strftime(%Y%m%d%H)}/${uuid}_$1_${caller_id_number}wav"/>

时间也都是从FS上面获取到传进LUA脚本里的。我是这么使用的。

参考方法如下:

local str1 = "12:36:28"

local str2 = "14:38:45"

local h1,m1,s1 = stringmatch(str1,"(%d+):(%d+):(%d+)")

local h2,m2,s2 = stringmatch(str2,"(%d+):(%d+):(%d+)")

local time1 = h1 3600 + m1 60 + s1

local time2 = h2 3600 + m2 60 + s2

print(time2 - time1)

得出的是 相差多少秒 除3600就是多少小时啦

以上就是关于如何确定在使用Lua脚本的执行时间全部的内容,包括:如何确定在使用Lua脚本的执行时间、Lua怎么写一个到某个时间执行的语句、lua程序调用系统时间-微秒等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9785202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存