作用
通过使用Context,可以做到统一的、全链路的流程控制和数据传递。
golangctx=context.WithValue(ctx,"my_key","my_value") // 设置一个值
ctx,cancel:=context.WithCancel(context.Background()) //设置一个取消信号
ctx,cancel:=context.WithTimeout(context.Background(),1*time.Second) // 设置一个超时取消信号
cancel()
日常中可能存在文件中包含空行的问题,针对该类问题,可以通过grep或者sed等命令进行整理
grep -v '^$' 原始文件 > 结果文件
Redis 不是整个程序只有一个线程,而是“核心命令执行”主要是单线程
也就是说,客户端发来的 GET、SET、HGET、ZADD 等命令,在 Redis 主线程中按顺序执行。
因为 Redis 的主要操作都在内存中完成,不需要频繁磁盘 IO
单线程的好处
text多个客户端连接 ↓ IO 多路复用监听事件 ↓ Redis 主线程读取请求 ↓ 单线程执行命令 ↓ 返回结果
import os import pandas as pd files = os.listdir( '文件目录路径') # 使用glob匹配所有csv文件 csv_files = [f for f in files if f.endswith('.csv')] for file in csv_files: tmp = "文件目录路径" + file df = pd.read_csv(tmp, sep='\t')
nc -l 监听端口 > example.txt # 服务端 nc 服务器ip 服务器监听端口 < 本地文件地址 # 本地
jswith dbpool.connection() as conn:
with conn.cursor(pymysql.cursors.DictCursor) as cursor:
sql = "select guid,raw_req from tp_data_storage where req_id=%s and tid=%s"
data = (req_id, tid)
# 手动拼接SQL - 这只适用于简单的情况,不建议在实际项目中这样做,因为有SQL注入的风险
# 对于复杂情况,请使用参数化查询,或者数据库驱动提供的安全方法
query = cursor.mogrify(sql, data)
print(query)
cursor.execute(sql, data)
result = cursor.fetchone()
相关信息
常见的http状态码