欢迎

  •  置顶

    Python自用插件

    joblib 多核多线程任务,并统一返回结果集

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import time

    from joblib import Parallel, delayed


    def cpu_intensive_task(n, i):
    print(f"Task {n} startedP{i}")
    start = time.time()
    # 假设是一个耗时的计算任务
    result = sum(i * i for i in range(10 ** 10))
    end = time.time()
    print(f"Task {n} finished in {end - start:.2f} seconds")
    return result


    tasks = range(4) # 假设有4个任务,根据CPU数据限制
    results = Parallel(n_jobs=-1)(delayed(cpu_intensive_task)(n, 3) for n in tasks)
    print(f"All tasks completed.{results}")
  • GIT 保存用户名密码

    1、设置记住密码(默认15分钟):

    1
    2
    git config --global credential.helper cache
    git config credential.helper cache
  • MySql Docker 查询中文乱码

    在使用 Docker 执行 MySQL 容器时,如果查询中文出现乱码,可以按照以下步骤解决问题:

    设置 MySQL 字符集:

    在启动 MySQL 容器时,通过环境变量设置 MySQL 的默认字符集为 utf8mb4,例如:

    1
    docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -d mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

    配置 MySQL 客户端字符集:

    进入 MySQL 容器后,在 MySQL 客户端中设置字符集:

  • 使用 Nginx + Lua 实现配置文件的默认选择

    业务场景

    当前业务需求是,当前系统中,针对项目添加不同的版本配置,并可选的设定为默认配置项(即读取项目而不传入版本号,则读取默认版本信息)

    原计划使用python实现当前场景,但考虑后期并发问题,可能在python读写数据库或者缓存对服务器产生压力。而考虑以纯静态文件方式来解决后期并发问题,故选择了使用nginx+Lua来实现业务场景。
    对于接口的请求,以文件目录结构方式访问, http://xxx.com/project_id/version ,可无需输入version来读取默认配置版本信息。
    对于存在的文件,直接nginx读取,对于不存在的路径,则由程序处理

    使用python

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @mod.route('<path:subpath>', methods=['GET', 'POST'])
    def configs(subpath=None):
    parts = urllib.parse.unquote(subpath).split('/')
    project_id = parts[0] if len(parts) > 0 else None
    version = parts[1] if len(parts) > 1 else None

    if not os.path.exists(os.path.join(static_path, project_id)):
    return Response("None")
    path = os.path.join(static_path, project_id, version)
    if not os.path.exists(path):
    path = os.path.join(static_path, project_id, 'index')
    else:
    path = os.path.join(static_path, project_id, version, 'index')

    with open(path, 'r', encoding='utf-8') as f:
    config_info = f.readlines()
    return Response("\n".join(config_info), mimetype=ResHelper.JSON)
  • Pve Lxc 部署OpenWRT

    创建CT模板

    PVE默认的模板路径为“/var/lib/vz/template/cache”,我们需要把模板上传到这个目录。
    tar.gz格式​
    tar.gz格式可以直接上传。
    img格式

    带rootfs

    文件名带有squashfs-rootfs,这种需要使用squashfs-tools工具解压。首先安装squashfs-rootfs解包工具。

    1
    apt install squashfs-tools
  • Pve Lxc 开启 tun

    以下 nnn ,均代表容器ID
    编辑 /etc/pve/lxc/.conf ,

    1
    vi /etc/pve/lxc/<nnn>.conf

    添加以下内容

    无特权容器

  • Debian设置中文

    设置时区为上海+08

    1
    timedatectl set-timezone Asia/Shanghai

    安装中文字体

    1
    apt-get install ttf-wqy-zenhei locale -y
    1
    dpkg-reconfigure locales

    选择zh_CN.UTF-8
    重新连接服务器

  • IDEA 插件推荐

    MyBatis Log Plugin

    把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。
    通过 “Tools -> MyBatis Log Plugin” 菜单或快捷键 “Ctrl+Shift+Alt+O” 启用。
    点击窗口左边的 “Filter” 按钮,可以过滤不想要输出的sql语句。 点击窗口左边的 “Format Sql” 按钮,可以格式化输出的sql语句。
    选中console的sql日志,右击 “Restore Sql from Selection” 菜单可以还原sql语句。
    前提条件:输出的sql日志必须包含”Preparing:”和”Parameters:”才能正常解析。

    Maven Helper

    CheckStyle-IDEA

    SonarLint

  • Keep主题

    这是《Keep 主题使用指南》的摘要信息......