定时器golang

golang实现设计模式之装饰器模式-优缺点,适用场景

`装饰器模式`是一种结构型设计模式,简单概括就是:不改变先有对象结构下,动态给对象增加一些职责。 装饰器模式通过组合方式实现,与继承的异同: * 使用继承方式,具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。 * 使用组合方式,创建装饰对象来装饰真实对象,原对象功能不变,另外扩展。 * ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之组合模式-优缺点与适用场景

`组合模式`是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。 **结构** * `抽象构件(Component)角色`:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象 ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之责任链模式-优缺点,适用场景

`责任链模式`是一种行为型的设计模式,也叫职责链,定义:在这样的场景中,请求需要经过一系列的处理者,通过列表或者链表将处理者组合起来,请求依次被处理者处理,如果需要中断,也可以及时退出处理。上述的这种的应用场景,典型的就是在 `web` 应用中的 `中间件或者拦截器`,比如 `Gin框架` 的中间件 ......
模式 设计模式 优缺点 场景 责任

golang实现设计模式之适配器模式-优缺点,适用场景

`适配器模式`是一种结构型设计模式,它是通过接口转换,使得原先接口不被兼容的其他类可以一起工作。 **类型** * 类结构型 特点: \- 程序耦合性高 \- 要求程序员对组件内部结构熟悉 \- 应用相对少些 类适配器模式可以用过继承的方式来实现。 * 对象结构型 特点:可重用性较差。 对象适配器允 ......

golang实现设计模式之观察者模式-优缺点,适用场景

`观察者模式`是一种行为型模式,其定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。 观察者模式常用 `订阅/发布机制`,即发布者持有所有订阅者,当发布者状态变更或者特定行为时,通知所有订阅者。 **结构** * 1.发布者。属性及行为:属性,订阅者列表,行为,添加、删除订 ......

golang中make与new的区别

# golang中make与new的区别 ## new函数 new官方文档的描述: ~~~~~~go // The new built-in function allocates memory. The first argument is a type, // not a value, and th ......
golang make new

linux的一次性定时任务at使用

linux 中执行任务计划有三种命令:at ,batch ,cron.其中,at,batch 是一次性执行,而crontab,则是周期性执行。 1、安装命令 使用下面的命令安装:yum install at -y 安装成功后使用 systemctl 命令启用 atd 服务:systemctl sta ......
一次性 任务 linux

Golang 配置代理

通过 go get 命令下载各种依赖时,经常需要访问 github/google 等网站。配置好代理后,可以快速稳定的访问。 常用的 go 代理 goproxyhttps://goproxy.io/zh/ 阿里云https://mirrors.aliyun.com/goproxy/ 七牛云https ......
Golang

Quartz + SpringBoot 实现定时任务(多任务,多执行时间)代码模板(直接CV即可)

# 一,什么是Quartz quartz 是一款开源且丰富特性的Java **任务调度库**,用于实现任务调度和定时任务。它支持各种任务类型和灵活的配置选项,具备作业持久化、集群和分布式调度、错误处理和重试机制等功能。Quartz被广泛应用于各种应用程序中,提供可靠和灵活的任务调度解决方案。 # 二 ......
任务 SpringBoot 模板 代码 时间

【转】分布式定时任务调度系统技术选型

我们先思考下面几个业务场景的解决方案: 支付系统每天凌晨1点跑批,进行一天清算,每月1号进行上个月清算 电商整点抢购,商品价格8点整开始优惠 12306购票系统,超过30分钟没有成功支付订单的,进行回收处理 商品成功发货后,需要向客户发送短信提醒 类似的业务场景非常多,我们怎么解决? 为什么我们需要 ......
分布式 任务 系统 技术

golang IOT 服务端基本架构

1. 简图 2. 网关功能 2.1 通用功能 负责和硬件端建立并维护TCP连接 黑白名单 熔断,限流 和后端业务服务交换处理数据 2.2 业务功能 自定义协议解析 设备上下线(绑定,注册等) 3. 底层环境 基于K8S+Rancher多POD 发布工具JK 镜像仓库:register ......
架构 golang IOT

定时任务原理方案综述 | 京东云技术团队

本文主要介绍目前存在的定时任务处理解决方案。业务系统中存在众多的任务需要定时或定期执行,并且针对不同的系统架构也需要提供不同的解决方案。京东内部也提供了众多定时任务中间件来支持,总结当前各种定时任务原理,从定时任务基础原理、单机定时任务(单线程、多线程)、分布式定时任务介绍目前主流的定时任务的基本原... ......
原理 团队 任务 方案 技术

2023年端午节高速免费吗?假期待办事项用手机定时提醒

进入6月份,很多上班族和学生都开始期待本月的一个重要节日了,它就是端午节。作为我国非常重要的传统节日之一,端午节不仅具有深厚的历史文化内涵,而且是国家法定节假日之一。按照相关规定来看,2023年端午节放假时间为6月22日-24日共三天时间,并且在6月25日(星期天)这天需要进行调休,我们要正常上班、 ......
事项 高速 手机 2023

Golang环境搭建

1、go环境下载地址:https://studygolang.com/dl 2、查看go安装状态: go version 3、学习指南 https://tour.go-zh.org/welcome/1 4、环境变量和相关配置 4.1 Windows环境下安装 # 1、配置Go环境变量-GOROOT ......
环境 Golang

go-tc golang tc 工具包

go-tc 是基于golang 的限速工具包,可以通过修改队列通过filter 以及类别进行限速处理,是一个听方便的golang 包类似的有基于cli 的wondershaper 可以通过cli 实现限速 参考资料 https://github.com/florianl/go-tchttps://g ......
工具包 工具 golang go-tc tc

golang导入私有仓库报错:“server response: not found:xxx: invalid version: git ls-remote -q origin in xxx“

1.问题:go get导入私有仓库报错 ➜ go get "devops.gitlab.xxx.com/test/kafka-utils" go: devops.gitlab.xxx.com/test/kafka-utils@v0.0.1: verifying go.mod: devops.gitl ......
仓库 ls-remote xxx response invalid

MQTT协议及其在Golang中的实现

# 引言: 在物联网(IoT)领域中,设备之间的通信是至关重要的。为了实现设备之间的高效、轻量级通信,MQTT(Message Queuing Telemetry Transport)协议被广泛采用。MQTT是一种基于发布/订阅模式的消息传输协议,被设计为简单、轻量级且易于实现。本文将介绍MQTT协 ......
Golang MQTT

数据结构 in Golang:Hash Tables(哈希表)

# 数据结构 in Golang:Hash Tables(哈希表) ### 场景 - 水果店的价格表: - 苹果 Apple:3元 - 香蕉 Banana:4元 - 桃子 Peach:2元 - 梨 Pear:3元 - 找到一种水果的价格: - 可以使用 binary search,通过名称来查找,耗 ......
数据结构 结构 数据 Golang Tables

golang并发channel实践

前言 在我前面一篇文章Golang受欢迎的原因中已经提到,Golang是在语言层面(runtime)就支持了并发模型。那么作为编程人员,我们在实践Golang的并发编程时,又有什么需要注意的点呢?下面我会跟大家详细的介绍一些在实际生产编程中很容易踩坑的知识点。 CSP 在介绍Golang的并发实践前 ......
channel golang

golang实现封装trycatch异常处理

老外的分享 package main import ( "reflect" ) type TryCatch struct { errChan chan interface{} catches map[reflect.Type]func(err error) defaultCatch func(err ......
trycatch golang

windows 定时关机

`schtasks /create /tn shut /tr "shutdown -s -f" /sc once /st 18:02 /sd 2023/06/07` 成功: 成功创建计划任务 "shut" `schtasks /delete /tn "shut"` 警告: 确实要删除任务 "shut ......
windows

Golang中如何控制goroutine的执行顺序?

首先说明一下原理:前后协程之间通过通道去相互限制,后一个线程尝试去获取一个channel的值,当channel中没有值时,就会一直阻塞,而前一个协程则负责关闭channel,当前一个协程完成了这个操作,后一个协程才可以结束阻塞,继续执行。 示例代码: package main import ( "f ......
goroutine 顺序 Golang

算法 in Golang:Breadth-first search(BFS、广度优先搜索)

# 算法 in Golang:Breadth-first search # (BFS、广度优先搜索) ## 最短路径问题 Shortest-path problem - 从 A 到 F 点有多条路径 ## 解决问题的算法 Breadth-first Search(广度优先搜索) 1. 将问题建模为图 ......
广度 Breadth-first 算法 Breadth Golang

算法 in Golang:Quicksort(快速排序)

# 算法 in Golang:Quicksort(快速排序) ## Quicksort(快速排序) - 快速排序 O(nlog2^n),比选择排序要快 O(n²) - 在日常生活中经常使用 - 使用了 D & C 策略(分而治之) ## 使用 Quicksort 排序数组 - 不需要排序的数组(也就 ......
算法 Quicksort Golang in

算法 in Golang:Recursion(递归)

# 算法 in Golang:Recursion(递归) ## 递归算法 ### 场景:在套娃中找到宝石 ### 可以这样做 - while 没找到: - if 当前项 is 宝石: - return 宝石 - else if 当前项 is 套娃: - 打开这个套娃 - if 当前项 is 宝石: ......
算法 Recursion Golang in

联想台式机无线网不定时异常,导致不能正常上网解决办法

公司新配的联想台式机出现网卡驱动异常导致退出的情况,开始没太在意,然而在近1个月(23年5~6月)反复出现了多次。 实在是忍不了了,于是查了下系统日志。 日志显示的异常报错如下图,即:Realtek RTL8852BE WiFi 6 802.11ax PCIe Adapter : 系统确定网络适配器 ......
无线网 台式机 台式 无线 办法

20个Golang片段让我不再健忘

本文使用代码片段的形式来解释在 go 语言开发中经常遇到的小功能点,由于本人主要使用 java 开发,因此会与其作比较,希望对大家有所帮助。 ......
片段 Golang

2023年端午节放假通知来了 放假时间用手机定时提醒

进入今年的6月,很多人都在期待下一个节日的到来,它就是我国四大传统节日之一的端午节。同时端午节也是国家法定节假日,那么端午节放假时间是什么时候呢?从2023年端午节放假通知来看,今年端午节放假时间是公历的6月22日、23日、24日共三天时间,并且在25日(星期日)还有调休安排,需要正常上班。 因为平 ......
时间 手机 2023

Golang中关于Channel读写的一些细节

我们知道,对于一个已经关闭的channle来说,如果channel内部还有值的话,可以继续执行读操作,读出channel里的元素,但是不能执行写操作; 相反,如果关闭后,channel里已经没有元素可读的情况,再执行读操作的话会读出channel的零值,同样,也不能执行写操作。 首先,先让我们通过代 ......
细节 Channel Golang

golang中for select时,如果channel关闭会怎么样?

首先,如果对于一个已经关闭的channel来说,如果此时channel里还有值,则会正确读到channel里的值,且返回的第二个bool值为true;如果关闭前,channel里的值已经被读完,则最后返回的则是channel的零值; 那么针对该问题,我们通过代码来验证一下: package main ......
channel golang select for