用 LUA 运行服务器并且需要每天在特定时间触发一个函数
2019-2-26 4:1:9
收藏:0
阅读:207
评论:1
所以我在运行一个每分钟执行一次的 LUA 脚本,这由软件控制,我无法控制执行的时间。我想每天检查时间并在特定时间触发一个函数。但是,在发生这种情况之前我想提前 5 分钟执行另一个脚本。
目前,我正在使用 os.date() 进行字符串比较,并将其解析为一个字符串。虽然这个方法是有效的,但代码不那么优美,如果时间发生变化,我必须手动更改两个不同变量的时间。我是 LUA 的新手,所以一直在努力找到最好的方法来解决这个问题。
所以,问题是,如何设置一个时间变量,并将该变量与 os.date(或 os.time)进行比较?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

在纯 Lua 中没有华丽的定时器实现方式。为了避免使用 os.date() 字符串,您可以通过设置预设日期的方式生成时间戳,os.time 接受 key-value 表来设置日期:
timestamp = os.time({year=2019, month=1, day=n})通过迭代增加变量
n,您将收到自2019年1月1日后每个新日期的时间戳。例如:os.date("%Y-%m-%d %H-%M-%S",os.time({year=2019,month=1,day=900}) --> 2021-06-18 12-00-00如果您无法保存日期变量(在应用程序重新启动之间跟踪),请获取当前 “今天” 的日期,然后从那里迭代:
os.date("%Y-%m-%d %H-%M-%S", os.time({year=os.date("%Y"),month=os.date("%m"),day=os.date("%d")+n} )使用自定义格式和 os.time 的 os.date 使您的代码不依赖于当前设置的日期 locale。
确定第一个任务的时间戳后,将第二个实际任务偏移五分钟
secondTaskTimestamp = fistTaskTimestamp + 5*60(或再次使用 os.time )。现在,您的定时器检查器只应比较时间戳。现在当您需要更改预配置的时间时,您只需要更改第一个任务的时间日期,第二个任务将自动偏移。
相关:在 Lua 中如何在特定日期的特定时间执行全局函数?