golang基于redis lua封装的优先级去重队列

前言: 前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务,所以导致队列中有大量的重复任务。这时候我们要临时解决两个事情,一件事情,让一些高质量的任务优先执行; 另一件事情, 要有去重。 rabbitmq不能很好的针对这类情况去重、分优先级。 这时候我又想到了我最爱的redis… 去重? list + set 就可以解决, 优先级,zset + zran...

centos 6.4安装supervisor守护golang进程

文章目录 [隐藏] 安装supervisor golang http服务 supervisor配置golang 启动supervisor supervisor运行原理 supervisor是否靠谱 最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西。supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来实现golang的守护进程,下面描述下具体实...

Golang如何安全使用协程

文章目录 [隐藏] 什么是协程? 异步编程的槽点 Golang 安全正确的使用Golang协程 什么是协程? 协程(Coroutine)是在1963年由Melvin E. Conway USAF, Bedford, MA等人提出的一个概念。而且协程的概念是早于线程(Thread)提出的。但是由于协程是非抢占式的调度,无法实现公平的任务调用。也无法直接利用多核优势。因此,我们不能武断地说协程是比线程更高级的技术。 尽管,在...

Golang协程详解

文章目录 [隐藏] 一、Golang 线程和协程的区别 进程、线程 和 协程 之间概念的区别 goroutine 和协程区别 其他方面的比较 二、协程底层实现原理 三、协程的历史以及特点 异步编程的槽点 Golang 四、Golang 协程的应用 channel select 一、Golang 线程和协程的区别 备注:需要区分进程、线程(内核级线程)、协程(用户级线程)三个概念。 进程、线程 和 协程 之间概念的...

Golang方法和接口使用说明

文章目录 [隐藏] 方法 方法接收者 指针接收者 接口 定义接口 实现接口 空接口 类型细化 在编程语言中,方法和函数的概念需要搞清楚。函数指的是一个封装的代码块,我们可以直接调用它,并返回结果。而方法其实也是一种函数,只不过方法需要和某个对象绑定。Golang并没有类的概念,不过仍然有方法和接口这些概念。 方法 方法接收者 方法接收者是一个特殊参数,给函数指定...

docker运行golang应用

文章目录 [隐藏] 搭建 mysql 环境 1. 通过容器编译并运行当前目录下的 golang程序(依赖需要先下载到当前目录 vendor中) 2. 使用 Docker构建镜像,在此镜像上运行一个容器,使用该容器运行 golang程序 搭建 mysql 环境 mysql.app docker run --net=host -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=letchat -d hub.c.163.com/library/mysql:latest 1. 通过容器编译并...

Go语言简介

Go语言(或Golang)起源于2007年,并在2009年正式对外发布。Go是非常年轻的一门语言,它的主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。 Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分...

最近评论

Archives