windows chrome 浏览器 关闭 preflight 预检策略

Chrome 浏览器的 CORS 预检请求(Cross-Origin Resource Sharing Preflight Request),在 Chrome 浏览器中关闭这些预检请求,使用以下方法:

在 Chrome 浏览器的地址栏中输入 chrome://flags/#out-of-blink-cors ,并启用此标志。这将禁用浏览器在 Blink 内核(Chrome 浏览器的核心渲染引擎)内执行 CORS 预检请求,从而提高性能。但是,注意这可能会导致某些网站无法正常工作。关闭 Chrome 浏览器并重新启动它以使更改生效。

需要说明的是,这种调整可能会影响您使用浏览器的方式,并可能对您的计算机的安全和稳定性产生影响。因此,请在更改浏览器设置之前慎重考虑,并确保在进行任何更改之前备份您的计算机以避免任何潜在的损失或问题。

JAVA中对List根据Map某个key值进行排序

JAVA中对List根据Map某个key值进行排序

可以使用Java 8的Stream API和Comparator来对List根据Map中的某个key值进行排序。具体步骤如下:

  1. 使用Stream API将List转换为Stream。
  2. 使用sorted方法对Stream中的元素进行排序,传入Comparator.comparing方法,并使用Lambda表达式指定要排序的Map中的key值。
  3. 使用collect方法将Stream转换为List。

示例代码如下:

List<Map<String, Object>> list = new ArrayList<>();
// 假设list中有多个Map元素,每个Map都包含“name”和“age”两个key值

List<Map<String, Object>> sortedList = list.stream()
    .sorted(Comparator.comparing(m -> (String) m.get("name")))
    .collect(Collectors.toList());
// 根据Map中的“name”值对List进行排序

注意:在使用Lambda表达式时,需要将Map中的value强制转换为对应的类型。

JAVA中对List根据Map某个key值按照指定list顺序进行排序

可以使用Java 8的Stream API和Comparator来对List根据Map中的某个key值按照指定List顺序进行排序。具体步骤如下:

  1. 创建一个包含指定顺序的key值列表。
  2. 使用Stream API将List转换为Stream。
  3. 使用sorted方法对Stream中的元素进行排序,传入一个Comparator对象,并使用Lambda表达式指定排序的规则。在Lambda表达式中,首先使用indexOf方法获取当前Map的key值在指定顺序列表中的下标,然后使用compareTo方法对下标进行比较。
  4. 使用collect方法将Stream转换为List。

示例代码如下:

List<Map<String, Object>> list = new ArrayList<>();
// 假设list中有多个Map元素,每个Map都包含“name”和“age”两个key值

List<String> order = Arrays.asList("Tom", "Jerry", "Mike", "John");
// 假设按照指定顺序排序的key值为“name”,顺序为“Tom”、“Jerry”、“Mike”、“John”

List<Map<String, Object>> sortedList = list.stream()
    .sorted(Comparator.comparing(m -> order.indexOf(m.get("name"))))
    .collect(Collectors.toList());
// 根据Map中的“name”值按照指定顺序对List进行排序

注意:在使用Lambda表达式时,需要将Map中的value强制转换为对应的类型。在indexOf方法中,如果当前Map的key值不在指定顺序列表中,将会返回-1。

定时调用电脑摄像头拍照

使用 python 写一个程序,调用电脑摄像头每隔 5 秒拍照一次存储到本地

import cv2
import time
import os
import datetime
print("start")
# 设置摄像头编号,一般为0或1
camera_id = 0
# 设置保存图片的路径
save_path = "capture/"
if not os.path.exists(save_path):
    os.mkdir(save_path)
# 创建VideoCapture对象
cap = cv2.VideoCapture(camera_id)
print(cap)

# 检查摄像头是否打开
if not cap.isOpened():
    print("Unable to open camera")
    exit(1)

# 设置循环抓拍
while True:
    # 捕获一帧图像
    ret, frame = cap.read()

    # 如果图像捕获失败,退出循环
    if not ret:
        print("Unable to capture frame")
        break

    # 生成文件名
    # timestamp = int(time.time())
    date = datetime.datetime.today().strftime("%Y%m%d")
    date_path = save_path + date + "/"
    if not os.path.exists(date_path):
        os.mkdir(date_path)

    date_time = datetime.datetime.today().strftime("%H%M%S")
    filename = date_path + str(date_time) + ".jpg"

    print(filename)
    # 保存图像到本地
    cv2.imwrite(filename, frame)

    # 等待10秒
    time.sleep(5)

# 释放资源
cap.release()

nodejs 运行一段时间后无法处理请求

pkg 打包的 nodejs 项目,总是运行一段时间后请求会卡死,就是无论怎么访问都一直在 pending,开始以为是 pkg 的问题,或是 mssql 连接释放的问题。后来发现是 cmd 命令行的问题,当 cmd 有选择操作后,新请求就会让 node 项目卡住,直到按下回车,项目才继续运行。解决方式是 cmd 属性中关闭快速编辑模式

根据端口号杀死进程进程工具


chcp 65001
cls
@echo.
@echo.
@echo                         ------根据端口号杀死进程进程工具v0.2.3(按回车继续/q退出)------
@echo.
@echo.
@echo.
@echo.

:_find
    @echo off
    set "port=0"
    set /p port=请输入被占用的端口号:
    if "%port%"=="0" goto _find
    if "%port%"=="q" goto end
    netstat -ano | findstr "%port%" >nul && Echo 以下进程占用了%port%端口: && echo   协议	 本地IP:端口		远程IP:端口		监听状态	PID && netstat -ano | findstr "%port%" || Echo %port%端口没有被任何进程占用. && goto _find

:_kill
    set "pid=0"
    set /p pid=请输入进程PID将其杀死:
    if "%pid%"=="0" goto _kill
    if "%pid%"=="q" goto end
    taskkill -PID "%pid%" -F
pause
:end
cls