API(十)时间相关的SDK

news2024/12/22 20:52:36

一  时间相关的SDK

 ①  时间记录的必要性

1、'案发'现场的时间点

2、通过时间判断'性能'

3、时间的'不准确'性,日志'落盘'时间   --> '缓冲区'导致延迟

②   使用哪些日期时间的函数

1、lua 标准'时间'函数,函数 'os.time'、'os.date' 和 'os.difftime' 提供了所有日期和时间

2、在 openresty 的世界里,'不推荐'使用这里的标准时间函数

3、原因:标准函数通常会引发不止一个昂贵的'系统调用',同时无法进行LuaJIT 编译,对性能影响较大

4、推荐使用 'ngx_lua 模块'提供的'带缓存'的时间接口,API'如下':

ngx.say('ngx.time()' .. ngx.time())
ngx.say('ngx.now()' .. ngx.now())
ngx.say('ngx.today()' .. ngx.today())
ngx.say('ngx.localtime()' .. ngx.localtime())
ngx.say('ngx.utctime()' .. ngx.utctime())
ngx.say('ngx.cookie_time(1500456075)' .. ngx.cookie_time(1500456075))
ngx.say('ngx.http_time(1500456075)' .. ngx.http_time(1500456075))
ngx.say('os.time()' .. os.time())
ngx.say('------')
ngx.say(ngx.update_time())

lua标准时间函数

②  ngx.req.start_time

③  时间类的SDK

ngx.today

时间戳: 获取'当前的时间戳'可以使用'如下'两个函数
​
1、在'实践'中我们通常使用'ngx.now'获取更'精确 [毫秒级别]'的时间用来计时

2、想要获取'更高的精确度'需要通过'ffi库'调用系统函数gettimeofday()

ngx.time

ngx.now

1、ngx.localtime、ngx.time、ngx.now等函数获取的时间基于OpenResty'内部缓存'的时间

备注: 与实际时间相比可能存在'微小'的误差

需求: 如果想要随时获得'准确的时间'可以先调用函数'ngx.update_time',然后再'调用'时间函数

ngx.update_time()    -- 强制'更新'内部缓存的时间

ngx.update_time会使用'系统函数gettimeofday()'强制更新时间,成本较高,除非必要应当尽量少用

ngx.localtime

ngx.update_time

ngx.utctime

时间戳和字符串格式的时间可以'互相'转换,OpenResty 提供'如下'三个函数:

ngx.cookie_time

ngx.http_time

ngx.parse_http_time

④   案例讲解

ngx.say'同'ngx.print,但是会最后输出一个'换行'符

⑤   ngx.sleep

同步'非阻塞'机制的解读:

1、ngx.sleep可以'睡眠'任意的时间长度

2、但'不会阻塞'整个服,这时OpenResty会基于协程机制转而'处理其他'的请求

3、等睡眠时间到再'回头'继续执行ngx.sleep后续的代码

注:不能在init_*、set_by_lua/header、body_ filter_by_lua/log_by_lua等阶段里'调用'

⑥   其它参考

openresty的日志处理

Openresty踩坑日志 -- 阻塞问题

*_by_lua_block {} 正则的转义

ngx.timer.every 新技能: 定时扫描'本地文件'是否有变动,发现特定文件,则执行'shell'脚本

ngx.timer.at    启动一次任务,执行'crontab'定时任务,脱离'openresty'的管理

OpenResty、Lapis、Luarocks、OpenSSL全面升级

lua文章汇总

正确的记录日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是商品价格监控,需要用到API接口嘛

商品价格监控是指通过系统化的方法来追踪、分析和比较商品价格的动态变化,以帮助商家及时获取市场价格信息,做出相应的决策。为了实现这一目标,API接口可以被用来获取商品价格信息。 具体来说,商家可以通过API接口连接到电商平台…

生产制造业厂家固定资产怎么管理

固定资产的管理对于企业的运营效率和盈利能力具有重要影响。然而,传统的固定资产管理方法往往存在许多问题,如资产的低效使用、维护成本高昂以及决策者对资产价值缺乏准确了解等。 因此,我们需要采用一种全新的方式来管理我们的固定资产。本文…

“温莎当下·麦克成风”2023赛季 杭州赛区决赛圆满落幕!

2023年9月16日,“温莎当下麦克成风”2023赛季上海赛区决赛在拱墅区大悦城水秀广场落下帷幕。比赛现场气氛高燃、精彩纷呈,选手们在璀璨的舞台上激情演唱,上演了一场精彩刺激的巅峰争霸赛。经过多轮比拼,最终7号选手方雪莹脱颖而出…

标准防雷接地网和简易地网的制作方法

防雷接地网是整套防雷系统不可缺少的部分,一般是由埋在地下一定深度的多个金属接地极和由导体将这些接地极相互连接组成一网状结构的接地体的总称。它广泛应用在电力、建筑、计算机,工矿企业、通讯等众多行业之中,起着安全防护、屏蔽等作用。…

Spring cloud gateway+apollo=bug?

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 spring cloud 版本 spring cloud: 2021.0.4spring cloud gateway: 3.1.4 背景 最近在配置研究网关的超时时间,有这么一个需求。 服务路由转发接口…

北工大汇编——综合题(2)

题目要求 编写一个比赛得分程序。共有7 个评委,按百分制打分,计分 原则是去掉一个最高分和一个最低分,求平均值。要求: 评委的打分以十进制从键盘输入。成绩以十进制给出,并保留 1位小数。输入输出时屏幕上要有相应提…

口袋参谋:淘宝宝贝秒卡首屏的方法!

​对于新手卖家来说,很多都不太明白,淘宝卡首屏是什么意思?其实卡首屏就是新品前期买家找不到的情况,通过卡首屏让他们快速找到宝贝。 通过卡首屏的方式,给买家账号注入产品标签,让买家进店前就是店铺的精…

「大数据-0.1」虚拟机VMware安装、配置、使用、创建大数据集群教程

目录 一、下载VMware Wworkstation Pro 16 二、安装VMware Wworkstation Pro 16 三、检查与设置VMware的网卡 1. 检查 2. 设置VMware网段 四、在VMware上安装Linux虚拟机 五、对安装好的虚拟机进行设置 1. 打开设置 2. 设置中文 3. 修改字体大小 4. 修改终端字体大小 5. 关闭虚…

【Vue】MVVM模型还没懂嘛

hello,我是小索奇,精心制作的Vue教程持续更新哈,想要学习&巩固&避坑就一起学习叭~ MVVM 模型 Vue虽然没有完全遵循MVVM模型,但Vue的设计也收到了它的启发在文档中也会使用VM(ViewModel的缩写)这个变…

终于搞清了:SPI、UART、I2C通信的区别与应用!

电子设备之间的通信就像人类之间的交流,双方都需要说相同的语言。在电子产品中,这些语言称为通信协议。 之前有单独地分享了SPI、UART、I2C通信的文章,这篇对它们做一些对比。 串行 VS 并行 电子设备通过发送数据位从而实现相互交谈。位是…

JVM内存结构解析(图文详解)

JVM内存结构 共享 和 隔离 线程共享区域:方法区、堆、直接内存 线程隔离区域:虚拟机栈、本地方法栈、程序计数器 线程共享:定义一个变量或者一个方法,多线程都可以同时访问、修改这个方法或者变量 线程隔离:就是数…

iPhone恢复出厂设置,掌握2个方法!

当您的手机出现闪退、内存不足、严重卡顿等情况,或者是想将手机进行二手转让时,您可能需要通过将iphone恢复出厂设置来解决问题。但是恢复出厂设置后,手机上的所有数据都会被清除。iPhone怎么恢复出厂设置?本文将为您介绍两种简单…

混淆矩阵和数据不平衡 (2/3)

一、说明 当我们的数据标签具有比另一个类别更多的类别时,我们说我们有数据不平衡。 如果数据集数据不平恒,如何评估分类器的效果?如果分类器不好,如何改进分类器?本篇将讲述不平衡数据下,混淆矩阵的应用。…

许战海战略文库|品类缩量时代:制造型企业如何跨品类打造份额产品?

所有商业战略的本质是围绕着竞争优势与竞争效率展开的。早期,所有品牌立足于从局部竞争优势出发。因此,品牌创建初期大多立足于单个品类。后期增长受限,就要跨品类持续扩大竞争优势,将局部竞争优势转化为长期竞争优势,如果固化不前很难获得增…

玩转 gpgpu sim 02记 —— 构建了什么

1. 设置环境变量 编译gpgpu-sim 需要先运行脚本 setup_environment , source setup_environment, 注释如下,主要是设置一些 Makefile中会用到的环境变量 # see README before running this # 下面这句用来检测当前的shell环境是不是 bash 或者 sh 或者 …

GD32F303窗口看门狗在待机模式下运行

1.窗口看门狗 独立看门狗的时钟关闭不了,所以低功耗模式下需要定期唤醒喂狗,否则就会重启,比较麻烦。窗口看门狗使用的是APB1时钟,低功耗模式下时钟就停止了,所以不需要定期唤醒喂狗。但是窗口看门狗有喂狗的时间窗口&…

韩国市场最全开发攻略

2022年1月1日,RCEP正式生效施行,韩国也是首次跟中国缔结自贸条约,更低的关税,更灵活的贸易规则、更简洁的通关程序都将为中韩在贸易上继续发力增加了更多可施展的空间。这也将帮助更多的企业在东亚市场大展拳脚,推进整…

归并排序~

将一个无序系列,分成小系列,相邻两个小系列进行排序合并,再将两个相邻小系列排序合并,。。。。 int[] data {0,5,4,8,9,3,2,67,23} len 9 第一次每个元素一组 0,5,4,8,9,3,2,67,23 相邻排序合并 …

Vue框架分享与总结

总结开发中最常用的vue语法,以及对特定语法的理解。vue官网 文章目录 一、创建vue项目1、使用开发工具创建2、使用命令行创建3、vue框架结构4、Vue文件结构 二、Vue 常用模板语法1、v-if、v-show2、v-for3、v-on4、v-bind5、v-model 三、组件通信1、父组件给子组件传…

Bytebase 2.8.0 - ​全新升级的数据脱敏功能

🚀 新功能 全新升级的数据脱敏功能,提供更加细化的脱敏和访问权限配置。全新升级的 SQL 编辑器界面。库表同步功能支持 Oracle。支持设置公告。 🎄 改进 新增基于 MySQL parser 的数据脱敏内核。调整了侧边栏数据库列表,用最近…