主页

使用jib打包docker镜像时区问题

一、前言 为了方便部署,不去倒腾开发环境,采用了docker的方式.在java这边就使用maven插件jib进行打包,虽然这样是方便很多,但使用的过程中也遇到各种的坑. 二、起因 在一次开发任务中,后端的时区有问题,比起北京时间少了8个小时.接到反馈,一般的思路是,先检查开发环境的时区, 看是否是UTC时区,检查过后发现,服务器时区正常,数据库时区正常.那么问题就定位到jdbc上,在开发机上测试,时区是正常的.那么问题又回到了服务器时区的问题,但检查了几遍都没发现时区的问题.于是问题定位到docker上. 三、解决 经过一番的试探,发现只要给jvm加上一个参数就可以完美解决,jib插件配置如下: <plugin> <groupId>c...

阅读更多

使用postgresql 中文分词

一、前言 在postgresql中有个比较骚的功能全文索引,这个功能虽然比不上搜索引擎,但简单的需求还是能够满足的.由于国内大多都需要进行中文进行检索,所以需要给postgresql安装一个中文分词的插件.目前中文分词的插件有jieba、zhparser,推荐使用zhparser,安装比较简单. 二、开始 环境: 系统: centos7 postgresql: 11 安装gcc: yum install -y gcc 安装g++: yum install -y gcc-c++ 安装wget: yum install -y wget 安装clang: yum install -y centos-release...

阅读更多

使用postgresql HASH分区随笔

一、前言 在这个数据时代,对数据库的要求是越来越高了,百万级的数据毫秒响应,对于mysql来说有很多种的优化方案.但postgresql却用的比较自然 二、hash分区 首先要安装postgresql,安装教程可以百度.很简单. 在postgresql11之前是不支持hash分区的,支持list和range分区的方式,当然也可以巧妙的利用list实现hash分区的功能. 创建主表: CREATE TABLE "public"."SysOperateLog" ( "id" varchar(64) NOT NULL, "account" varchar(100) NOT NULL, "operate" int2 NOT NULL, ...

阅读更多

虹软人脸识别sdk踩坑记录贴

一、虹软sdk过期问题 虹软虽然让我们免费试用sdk,但sdk下载下来只能在一年之内试用,超过一年则视为过期,要在虹软官网重新下载sdk和替换秘钥.虹软的这种措施,估计是为了后面收费做打算吧.但这种机制折腾起来真的很蛋疼.一个sdk包体积大约40M吧,如果需要批量替换,流量哪个遭得住哇. 目前想到一个思路,把系统的时间改了,让系统时间永远在有效时间内.这样就避免的了虹软sdk过期而不工作的问题. 二、虹软sdk2.0人脸检测问题 听说2.0在速度方面有很大的提升,于是乎就去下载下来进行尝试.发现2.0在人脸检测的速度上不仅很慢还容易错识别.之前在办公室摆了一盆儿花,不知不觉的被虹软识别了好几次人脸.妈耶,吓死我了.晚上就去求一个附身符. 经过测试在windows平台,CPU:...

阅读更多

在c/c++代码中执行bat文件

一、前言 最近在整公司IPC的更新功能,为了保证更新阶段的灵活性,思路为使用编写好的脚本进行更新,当更新失败的时候使用编写好的脚本进行回滚.感觉难度不是很大.但是在实现的过程中还是遇到了一个坑. 二、踩坑 当程序是以服务的方式运行的时候,我尝试过使用system、ShellExecute、ShellExecuteEx方式去执行写好的脚本,发现每次代码执行过后,脚本是没有被执行到的,但用vc调试的时候,发现是被执行了的.就感觉很奇怪了.貌似更windows的服务机制是有关的.具体的机制不太清楚,毕竟我只是一个javaer.抱着以解决问题为目的,在Stack Overflow上面找到了答案,使用创建进程的方式调用bat文件.下面开始贴代码了. 三、填坑 具体代码如下: /***...

阅读更多

近半月项目总结

一、前言 这段时间公司里的任务要用到虹软的人脸识别,以及openCV获取onvif的视频流.由于没怎么接触过这两个东西.于是踩了不少的坑.特别是openCV的坑.太致命了,来不来就crash jvm,头大. 由于经常crash jvm 并没找到原因,退而求其次的方案是加上一个看门狗,当jvm crash 的时候,自动拉起程序.哈哈,是不是个小机灵鬼??但在windows上的这个看门狗,也让我踩了session隔离的坑.也头大. 二、挖坑与填坑 虹软的挖与填 坑: 虹软1.0的版本在做人脸识别的时候不能多线程并发识别. 填: 通过线程池,并且集成线程池对象,让每个线程都持有一个虹软的engine,达到多线程识别的目的 坑: 线程池使用forkjoin的方式,会出现...

阅读更多

分享一次jna内存泄露问题定位BUG的过程

一、前言 使用jna和jni都不可避免内存泄露的问题,一般内存泄露分两种,一种本地库本身有内存泄露问题,另一种JVM 内存中 native memory 的内存泄漏. 本地库本身有泄露这种定位起来比较麻烦,毕竟你也没有他的源码不是.native memory 内存泄露这个还比较好定位,首先保护好案发现场,保存好程序运行日志,heap dump 下来,然后就可以慢慢的来调查来,一般都可以石锤. 笔者这次出现问题,主要是因为换了个线程池导致的.为了加快虹软的对比速度,采用了多线程并发的方式进行对比,只要其中一个对比成功,其余任务全部取消.当时为了上线急忙忙的自己实现了,线程池采用的是ThreadPoolExecutor,并继承Thread对象,在该对象类引入虹软的人脸识别引擎,该方式...

阅读更多

用c造一个日志记录的轮子

一、前言 有现成的C库为什么要自己造轮子呢?我发现大家对造轮子情有独钟呀,所以我也来试一试,免得被C圈里面的人排挤. 二、上代码 头文件logger.h #ifndef LOGGER_H_ #define LOGGER_H_ #include <Windows.h> #include <tchar.h> #include <stdio.h> #if !defined(LOG_TAG) #define LOG_TAG L"NO_TAG" #endif #include <stdarg.h> #include <time.h> #define __S...

阅读更多