picgo

image-20221204155139187

spring-jackson

  • 异常信息
    • jackson.databind.exc.InvalidDefinitionException cannot deserialize from Object value
  • 原因
    • 在该实体类中添加了一个为了方便实例化该类用的构造函数,导致JVM不会添加默认的无参构造函数,而jackson的反序列化需要无参构造函数,因此报错。
  • 解决
    • 补上一个无参构造器
  • 原理
    参考

db-mongo-near

  1. 需求

    • 判断某个位置是否偏移预定路线 比如离开指定路线 x 米。
  2. 已有数据

    • spring boot 2.7.3、mongo 数据库 4.2
    • 高德路径规划 根据返回的数据整理。
    • 一个实时的位置点
  3. 实现思路

    • 自己可实现 根据算法点到直线的距离(麻烦且耗时)
    • mongo 的 near 函数
    • 以实时位置点为圆心 x 为半径画圆 判断指定的路线和圆是否有重叠 有的话说明未偏移 反之偏移
阅读更多

linux-expansion

用到的命令

  • 使用命令查看磁盘空间情况

    1
    df -h
  • 使用命令查看指定目录空间情况

    1
    du -h --max-depth=1 /opt
  • 查看当前目录空间使用情况

    1
    du -h
阅读更多

java-matlab

mac 环境

  • java 1.8
  • R2019b (9.7)
  • macos Mojave 10.14.6

本地运行

  1. 下载 MATLAB Runtime 下载地址
  2. 将 MATLAB jar 引入到项目里
  3. 就可使用 jar 的类和方法

安装 MATLAB Runtime

  • centos 7.6
  • macos Mojave 10.14.6
  • centos 7.6
    • vim ~/.bash_profile
    • 设置变量
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}\
      /usr/local/MATLAB/MATLAB_Runtime/R2022b/runtime/glnxa64:\
      /usr/local/MATLAB/MATLAB_Runtime/R2022b/bin/glnxa64:\
      /usr/local/MATLAB/MATLAB_Runtime/R2022b/sys/os/glnxa64:\
      /usr/local/MATLAB/MATLAB_Runtime/R2022b/extern/bin/glnxa64"
      <!-- 本机设置 -->
      export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}\
      /usr/local/MATLAB/MATLAB_Runtime/v97/runtime/glnxa64:\
      /usr/local/MATLAB/MATLAB_Runtime/v97/bin/glnxa64:\
      /usr/local/MATLAB/MATLAB_Runtime/v97/sys/os/glnxa64:\
      /usr/local/MATLAB/MATLAB_Runtime/v97/extern/bin/glnxa64"
  • mac
    • vim ~/.bash_profile
    • 设置变量
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}\
      <MATLAB_RUNTIME_INSTALL_DIR>/runtime/maci64:\
      <MATLAB_RUNTIME_INSTALL_DIR>/bin/maci64:\
      <MATLAB_RUNTIME_INSTALL_DIR>/sys/os/maci64:\
      <MATLAB_RUNTIME_INSTALL_DIR>/extern/bin/maci64"
      <!-- 本机设置 -->
      export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}\
      /Applications/MATLAB/MATLAB_Runtime/v97/runtime/maci64:\
      /Applications/MATLAB/MATLAB_Runtime/v97/bin/maci64:\
      /Applications/MATLAB/MATLAB_Runtime/v97/sys/os/maci64:\
      /Applications/MATLAB/MATLAB_Runtime/v97/extern/bin/maci64"

docker 清理日志

日志文件过大暂时清理(治标)

命令会按照升序的方式对于容器文件夹进行排序,并列出容器文件夹的大小

  • du -d1 -h /var/lib/docker/containers | sort -h

    选择你要清理的容器进行清理

  • cat /dev/null > /var/lib/docker/containers/container_id/container_log_name

阅读更多

docker 时区

docker 8 小时

建立docker 经常会出现 docker 日志的时间和正常时间相差 8小时 通过date -R 查看时区也没有问题

  • 这是因为 date 指令对应的是 /etc/localtime
  • 时区的修改要通过设置 /etc/timezone 否则调整了时间格式,本机所属的时区仍保持不变.
阅读更多

remote-jvm-debug

当我们线上测试环境的项目出问题的时候,我们可以用此方式进行远程debug

  • 注意只能用于测试环境 正式环境会造成系统阻塞
  • 注意本地代码和线上代码要一致

    操作步骤

阅读更多