API(十)时间相关的SDK

一  时间相关的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文章汇总

正确的记录日志

perlre正则

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

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

相关文章

windows 深度学习环境部署

1. 根据显卡配置安装适合的CUDA,查看显卡配置可在显卡控制面板上查看,安装是否成功可通过nvidia-smi查看;注意安装路径 https://developer.nvidia.com/cuda-toolkit-archive 2. 根据cuda安装合适的cudnn,需要注册NVIDIA cuDNN Archive | NVIDIA Devel…

VMware云数据中心中常用的术语清单

网卡组合(NIC Teaming): 链路聚合协议(Link Aggregation Control Protocol): 端口聚合协议(Port Aggregation Protocol): 主机总线适配器(Host Bus Adapter&#xff0…

自定义数据类型

前言:小伙伴们又见面啦,今天这篇文章,我们来谈谈几种自定义数据类型。 目录 一.都有哪些自定义数据类型 二.结构体 结构体内存对齐 1.如何对齐 2.为什么要对齐 3.节省空间和提升效率的方法 (1)让占用空间小的成员…

Qt5开发及实例V2.0-第二十三章-Qt-多功能文档查看器实例

Qt5开发及实例V2.0-第二十三章-Qt-多功能文档查看器实例 第23章 多功能文档查看器实例23.1. 简介23.2. 界面与程序框架设计23.2.1. 图片资源23.2.2. 网页资源23.2.3. 测试用文件 23.3 主程序代码框架23.4 浏览网页功能实现23.4.1 实现HtmIHandler处理器 23.5. 部分代码实现23.5…

代码随想录Day44 | 完全背包

完全背包 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数…

注意力机制

概念没什么好说的,反正大家都会说,具体实战怎么写才是最为重要的 1.自注意力 假设有一组数据,都是一维的向量,这个向量可能是一个样本,可能是其他什么,都无所谓。 假设有一组一维向量x1,x2,x3,x4,x5; 第…

python读取图片

要在Python中读取图片,你可以使用第三方库Pillow(Python Imaging Library,PIL)或OpenCV。以下是使用这两个库的示例: 使用Pillow库读取图片: 首先,确保你已经安装了Pillow库。如果还没有安装&am…

AI 编码助手 Codewhisperer 安装步骤和使用初体验

文章作者:为了自己加油 最近亚⻢逊云科技推出了一款基于机器学习的AI编程助手 Amazon Code Whisperer,可以实时提供代码建议。在编写代码时,它会自动根据现有的代码和注释给出建议。Amazon Code Whisperer与 GitHub Copilot 类似,…

Vite的安装与使用

Vite也是前端的构建工具,相较于Webpack,Vite使用了不同的运行方式: 开发时并不对项目进行打包,而是直接采用ESM的方式来运行项目。在项目部署时再进行打包。 因此vite的执行速度相较于Webpack快了许多,操作起来也比W…

华为OD:求字符串中所有整数的最小和

输入字符串s,输出s中包含所有整数的最小和。 说明: 字符串s,只包含a-z A-Z-; 合法的整数包括: 正整数一个或者多个0-9组成,如 0 2 3 002 202负整数负号-开头,数字部分由一个或者多个0-9组成…

SQL中:提示不允许修改表结构,如何更改

SQL:不允许修改表结构 步骤图例注意 步骤 选择菜单栏中的“工具”-“选项”,在选项对话框左栏中找到“设计器”,在设计器右边取消勾选“阻止保存要求重新创建表的更改”即可。 图例 注意 设计表时,尽量一次性设计成功&#xff…

Android12之解封装NuMediaExtractor::setDataSource过程(四十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

unity 桌面程序

using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using UnityEngine; public class chuantou : MonoBehaviour { [DllImport(“user32.dll”)] public static extern int MessageBox(IntPtr hwnd,string t…

Gram矩阵

Gram矩阵如何计算 Gram 矩阵是由一组向量的内积构成的矩阵。如果你有一组向量 v 1 , v 2 , … , v n v_1, v_2, \ldots, v_n v1​,v2​,…,vn​,Gram 矩阵 G G G 的元素 G i j G_{ij} Gij​ 就是向量 v i v_i vi​ 和向量 v j v_j vj​ 的内积。数学上&#x…

Springboot ruoyi配置mysql备份定时任务

一、RuoYiConfig.class 新增获取备份路径方法 public static String getDataBaseBackUp() {return getProfile() "/dbBackUp";} 二、RyTask:新增备份数据库方法 mySqlDump方法:参数详见代码 package com.ruoyi.quartz.task;import cn.hut…

【动手学深度学习-Pytorch版】序列到序列的学习(包含NLP常用的Mask技巧)

序言 这一节是对于“编码器-解码器”模型的实际应用,编码器和解码器架构可以使用长度可变的序列作为输入,并将其转换为固定形状的隐状态(编码器实现)。本小节将使用“fra-eng”数据集(这也是《动手学习深度学习-Pytor…

linux用户和权限命令学习记录

文章目录 版权声明root用户(超级管理员)su和exit命令sudo命令为普通用户配置sudo认证 用户、用户组管理用户组管理getent命令 查看权限控制认知权限信息 修改权限控制chmod修改文件、文件夹的权限权限的数字序号chown修改所属用户、用户组 版权声明 本博…

华为NFC设置教程(门禁卡/公交卡/校园卡等)

今天把华为NFC设置教程分享给大家 出门带门禁卡、校园卡、银行卡、身份证……东西又多,携带又麻烦,还容易搞丢,有没有一种方法可以把它们都装下?有!只要一部手机,出门不带卡包,各种证件&#x…

机器学习第十课--提升树

一.Bagging与Boosting的区别 在上一章里我们学习了一个集成模型叫作随机森林,而且也了解到随机森林属于Bagging的成员。本节我们重点来学习一下另外一种集成模型叫作Boosting。首先回顾一下什么叫Bagging? 比如在随机森林里,针对于样本数据,…

如何通过axios拦截器,给除了登录请求以外,axios的所有异步请求添加JWT令牌!

在 Vue 项目中配置除了登录请求以外的所有请求的令牌,通常涉及到在请求头中添加令牌(Token)信息。这可以通过使用 Axios 或其他 HTTP 请求库来实现。以下是一般的步骤: 1. **安装 Axios**: 如果你还没有安装 Axios&a…