python ThreadPoolExecutor
并发执行方法对比(submit/as_completed/map)核心特性对比表 特征 executor.map() submit+顺序处理 as_completed 执行顺序 并发执行 并发执行 并发执行 结果顺序 保持输入顺序 保持提交顺序 按完成顺序 异常处理 遇到第一个异常立即抛出 可逐个处理异常 可单独处理每个任务异常 代码复杂度 ★☆☆ 最简单 ★★☆ 中等 ★★★ 最灵活 内存消耗 低(惰性迭代) 高(需存储所有future) 中(动态处理) 进度反馈 无法实时获取 需手动实现 自动实时反馈 适用场景 简单转换/批量处理 需要严格顺序的结果 需要及时处理完成的场景 方法详解1. executor.map()典型用法: 123456789101112131415161718192021222324252627282930313233343536373839404142from concurrent.futures import ThreadPoolExecutordef...
python threading
threading.Thread 适用场景:任务逻辑差异大;每个线程需要执行完全不同的逻辑 三个比较重要的参数 锁:threading.Lock()两种使用方法推荐with下方演示,第二种手动加锁lock.acquire(),然后释放lock.release() 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#未使用的情况下def sing(): #with stats_lock: for i in range(3): print("正在唱歌...%d"%i) sleep(1)def dance(): #with stats_lock: for i in range(3): print("正在跳舞...%d"%i) ...
mq
rabbitMQ 生产者路由 vhost > exchange > queue每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己的权限机制123456789101112131415161718192021222324252627version: '3'services: rabbitmq: image: registry.cn-hangzhou.aliyuncs.com/lky-deploy/mq:rabbit-3-management container_name: rabbitmq restart: always ports: - "5672:5672" - "15672:15672" - "15692:15692" # Prometheus 监控指标端口(可选) environment: RABBITMQ_DEFAULT_USER: admin ...
prometheus进阶
deploy123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152#!/bin/bash# 创建目录结构mkdir -p monitoring/prometheuscd monitoring# 生成docker-compose.yml,node和process必须使用host宿主机网络,不然很多指标只能采集到容器里面的信息不准确cat >...
proxysql
...
斗地主
...
常用命令记录
perf123456789101112#进程热点函数分析perf top -g -p 21515perf record -F 99 -a -g -p $pid -- sleep 60-e选项允许您在perf list命令中列出的多个类别中选择一个事件类别。perf report -i 文件 -gperf report -g graph,0.3#默认0.5,低于不显示堆栈#隐藏CPUperf sched record -C 0 -- sleep 5 (-C后面的参数,填CPU使用率高的cpu序号,0表示第一个CPU)perf report 选择 sched:sched_switch 按回车键perf sched latency --sort max strace12345678910111213141516strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s 1024 -p 23489● -tt:在每行输出的前面,显示毫秒级别的时间● -T:显示每次系统调用所花费的时间●...
elastcisearch_dump
esdumphttps://github.com/elasticsearch-dump/elasticsearch-dump 1234567891011121314151617181920docker pull elasticdump/elasticsearch-dumporwget https://nodejs.org/dist/v16.18.0/node-v16.18.0-linux-x64.tar.xzexport PATH=$PATH:/root/node-v16.18.0-linux-x64/bin/npm install elasticdump -g#bashPREFIX="y-logs-"curl -s "http://localhost:9200/_cat/indices?h=index" | grep "^${PREFIX}" | while read -r INDEX_NAME; do#INDEX_NAME="y-logs-2025" for TYPE...
rsync
命令主要参数1234567891011121314151617181920212223242526272829303132333435363738394041-a, ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 -rlptgoD (注意不包括 -H)-r, ––recursive 对子目录以递归模式处理-l, ––links 保持符号链接文件-H, ––hard-links 保持硬链接文件-p, ––perms 保持文件权限-t, ––times 保持文件时间信息-g, ––group 保持文件属组信息-o, ––owner 保持文件属主信息 (super-user only)-D 保持设备文件和特殊文件 (super-user only)-z, ––compress 在传输文件时进行压缩处理––exclude=PATTERN 指定排除一个不需要传输的文件匹配模式––exclude-from=FILE 从 FILE 中读取排除规则––include=PATTERN 指定需要传输的文件匹配模式––include-from=FILE 从 FILE...
ftp
主动模式PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图 被动模式PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图 从上面的运行原来看到,主动模式和被动模式的不同简单概述为:...
