自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 golang使用template实现类mybatis的sql生成器的思路

sqltemplate项目地址gitee.com/sqxwww/sqltemplate介绍sqltemplate提供了如何用text/template快速实现动态sql生成器的思路,有需要者可根据此定制化实现自己的sqltemplate代码package sqltemplateimport ( "fmt" "reflect" "strings" "text/template")const ( funcNamePrepare = "prepare" funcNameP

2021-03-28 22:30:16 895

原创 golang基于machinery扩展支持定时任务管理和任务广播的分布式任务调度系统

xmachinery项目地址gitee.com/sqxwww/xmachinery/tree/master介绍xmachinery 是github.com/RichardKnop/machinery 的扩展包,添加定时任务管理API,扩展支持广播任务核心代码定时任务管理func (server *XServer) registerScheduledTask(task ScheduledTask) error { //检查cron表达式 schedule, err := second

2021-03-23 12:57:31 1607

原创 golang批量导出url链接到excel(无限制)

xexcelize项目地址https://gitee.com/sqxwww/xexcelize介绍xexcelize 是github.com/360EntSecGroup-Skylar/excelize 的扩展包,用于支持批量导出公式。可以利用其批量导出HYPERLINK从而实现批量导出url的功能原理经查看xlsx的底层xml,发现公式可以使用<f></f>标签输出,eg.<f>HYPERLINK("https://www.baidu.com","

2021-03-16 13:30:31 412

原创 golang AddDate 临界坑

golan AddDate 临界坑Time.AddDate方法对月年做加减时,若当前天数大于目标月的天数,则会自动再加上多余的天数!如:package mainimport ( "fmt" "time")func main() { const date_format = "2006-01-02" srcTime, _ := time.Parse(date_format, "2020-12-31") fmt.Println(srcTime.AddDate(0, -1, 0))..

2021-02-01 10:32:49 1480 2

原创 golang包循环引用的几种解决方案

golang包循环引用的几种解决方案原文链接:https://libuba.com/2020/11/02/golang%e5%8c%85%e5%be%aa%e7%8e%af%e5%bc%95%e7%94%a8%e7%9a%84%e5%87%a0%e7%a7%8d%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/一、前言golang为了加速编译,不允许包循环引用。通常来说,只要你的包规划得好,严格规范单向调用链(如控制层->业务层->数据层),一般不会出现包

2020-11-03 00:13:02 6685

原创 读锁嵌套导致死锁(golang)

直接上死锁例子原因当有写锁申请时会阻塞掉新的读锁申请(写锁优先原则)package mainimport ( "sync" "time")var lock sync.RWMutexfunc main() { go func() { outRLock() }() time.Sleep(time.Second) wLock()}func outRLock...

2020-01-04 23:54:02 1174 1

原创 go实现keyLock,根据关键字加锁

package keyLockimport ( "sync" "sync/atomic" "time")const ( defaultCleanInterval = 24 * time.Hour //默认24小时清理一次)type KeyLock struct { locks map[string]*innerLock //关键字锁map cleanI...

2020-01-03 15:08:54 1537

原创 go利用monkey框架的动态代理实现AOP

前言从java转go以来一直在寻找动态代理的实现方案,几经波折,终于找到了位牛人写的框架monkey,简单喵了下其源码,貌似是通过替换底层函数字节码来达到动态替换效果,后续再仔细拜读。这里我利用monkey框架实现了一个简单的AOP框架monkey项目地址:https://github.com/bouk/monkeyaop码云地址:https://gitee.com/sqxwww/ao...

2019-09-30 16:08:23 5825 8

原创 GO 实现自增id

package guidimport ( "fmt" "github.com/astaxie/beego/orm" "sync" "time")func init() { orm.RegisterModel(new(IdInfo))}//模块id信息type IdInfo struct { Id int //模块id Max ui...

2019-07-12 14:34:25 3389

原创 关于java线程中断的几点发现sleep()、wait()等JDK内置的方法抛中断异常后会清掉线程的中断状态

废话不多说,先贴上bug代码public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedExce...

2018-10-14 16:47:35 2626 4

原创 java实现一个简单的线程池

池是一种非常流行的资源管理模式,比如线程池、连接池等。对于线程池,在java的类库中已经提供了线程池的一些基本实现,在平常应用中,我们使用类库中给我们提供的已经足够了。但不知大伙有没有跟我一样的疑问,线程池中的线程是如何保持空闲状态的?这个问题其实很好找到答案,看下源码就知道了!废话不多说,直接贴上JDK中的源码 final void runWorker(Worker w) {...

2018-10-14 03:59:41 1107

国内ip归属离线地址库,IP定位离线库 (更新于2022年11月)

国内ip归属离线地址库,IP定位离线库,月更 (最后更新于2022年11月)

2022-11-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除