vue3 扫描文件夹里面所有文件导入到代码里面
12345678910<template></template><script setup> const files = import.meta.glob('../public/musics/1/*') console.log(files)</script><style scoped></style>
安卓监听微信完成支付接口回调原理(极简版)
监控到支付宝到账100元,然后我们拿到这个通知告诉我们的网站:我刚才收到了100元.最近谁下了订单?嗯.最近张三说要还我100块钱.那就是张三咯.好,标记张三还钱100成功. 完成
那张三和李四都说要还100怎么办?那就张三.你还99.99;李四你还100.01 说好的数字.倒是后我收到多少钱就是谁还的.所以我们一个金额的二维码要多设置几张.
张三下单100元
查看100元二维码是否被锁定
没有被锁定,生成100元二维码给到此次下单的人,这里系统并不知道是张三(如果被锁定则生成99.99或99.98等)
张三支付100元
监听通知栏知道支付宝到账100元, 某个人支付了100元
系统查看100元二维码是否被锁定
被锁定,标记100元的订单支付成功(如果没被锁定则之前某个单子出现异常没有支付就解锁了,或有人平白无故支付了100元)
张三的客户端轮训发现他的单支付成功,则显示支付成功
从头到尾系统并不知道是张三,只知道某个人支付了100元, 并且某个单锁定了100元的二维码,匹配成功则标记支付成功
Android 通知监听服务、NotificationListenerService使用方式(详细步骤+源码)
https://cloud.tencent.com/developer/article/1876168
创建一个服务,然后将服务注册在AndroidManifest.xml中。创建一个NotifyService类,里面的代码如下:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576public class NotifyService extends NotificationListenerService { public static final String TAG = "NotifyService"; public static final String QQ = "com.tencent.mobileqq";//qq信息 public static final String WX = ...
Android Studio:如何使用Android Studio与夜神模拟器开发调试
官网下载地址:http://www.bignox.com/
使用Android Studio与夜神模拟器开发调试:
打开到夜神安装目录(如cd D:\Program Files\NOX\Nox\bin),
执行命令:nox_adb.exe connect 127.0.0.1:62001,连接模拟器,
连接各种模拟器的IP和端口号夜神模拟器:adb connect 127.0.0.1:62001雷电模拟器:adb connect 127.0.0.1:5555逍遥安卓模拟器: adb connect 127.0.0.1:21503天天模拟器:adb connect 127.0.0.1:6555海马玩模拟器 :adb connect 127.0.0.1:53001网易MUMU模拟器:adb connect 127.0.0.1:7555
fastapi 创建jwt & 验证jwt
jwt.py123456789101112131415161718192021222324252627282930313233343536373839404142from datetime import timedelta, datetime, timezonefrom typing import Union, Annotatedfrom fastapi import Depends, HTTPExceptionfrom fastapi.security import OAuth2PasswordBearerfrom jose import JWTError, jwtSECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"ALGORITHM = "HS256"ACCESS_TOKEN_EXPIRE_MINUTES = 30oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token" ...
go jwt 中间件 middleware
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120// Package middleware /**package middlewareimport ( "errors" "github.com/gin-gonic/gin" "github.com/golang-jwt/jwt" "go.uber.org/zap" "net/http" "time" "v1/go-import-template/global&q ...
为什么vue2只能有一个根节点
template 内的内容最终会被抽象为一个 vnode 节点每个子组件在其父虚拟 dom 中由单个vnode.在当前的实现中,diffing 算法(负责将当前的 virtualDOM 与旧的 virtualDOM进行比较,并将差异修补到真实 DOM 中)可以依赖于这样一个事实:子组件的每个 vnode 在真实 dom 中都有一个匹配的 HTML 元素,因此子组件vnode 之后的 virutalDOM 中的下一个 vnode 保证与真实 DOM 中的下一个 HTML 元素匹配。
允许片段需要对该算法进行重大更改,因为我们现在必须以某种方式让父级始终了解子级当前在真实 DOM中管理的根节点数量,因此当父级重新渲染时,它知道有多少根节点HTML-Elements 它必须“跳过”才能到达不属于子组件的下一个 HTML元素,
这是Vue 核心的一段非常复杂/复杂的代码,它对于渲染性能至关重要 - 因此,不仅使其正常工作很重要,而且使其高性能也很重要。
Nginx为什么支持那么高的并发量?
原文链接:https://www.cnblogs.com/fengting0913/p/13671738.html
1. Nginx和IO多路复用Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。本文从底层原理分析 Nginx 为什么这么快!
Nginx进程模型
Nginx服务器正常运行过程中
多进程:一个 Master 进程、多个 Worker 进程。
Master 进程:管理 Worker 进程。
对外接口:接收外部的操作(信号);
对内转发:根据外部操作的不同,通过信号管理 Worker;
监控:监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker 进程。
Worker 进程:所有 Worker 进程都是平等的。
实际处理:网络请求,由 Worker 进程处理。
Worker 进程数量:在 nginx.conf 中配置,一般设置为核心数,充分利用 CPU 资源,同时,避免进程数量过多,避免进程竞争 CPU资源,增加上下文切换的损耗。
思考
请求是连接到 Nginx,Master 进程负责处理和转发 ...
Linux 开启 swap 分区详细教程
操作步骤1、创建1个 2G 文件
12fallocate -l 2G /swapfilels -lh /swapfile
2、mkswap 创建 swap 分区
1mkswap /swapfile
3、swapon 开启 swap 分区
1swapon /swapfile
4、查看内存 swap 分区是否生效
1free -h
5、配置 /etc/fstab 文件,让 swap 分区开机自加载
1echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
其他問題1. 针对SUSE 15和SUSE 12.4的镜像,vm.swappiness 默认为0,即只有100%物理内存都被占用才会使用swap。将vm.swappines设置成60,代表当内存使用率达到40%的时候,就开始使用swap。配置方法:在/etc/sysctl.conf中添加一行vm.swappiness = 60。
立即生效
1/sbin/sysctl -p
卸载交换分区
关闭交换分区
1swapoff -a ...
【Antd】InputNumber 只能输入整数
使用 precision 四舍五入123456<InputNumber :min="1" :max="999" :defaultValue="1" :precision="0"/>