文档章节

gobeanstalk - go语言beanstalk客户端

liuzhengyang
 liuzhengyang
发布于 2016/09/08 23:30
字数 317
阅读 18
收藏 0

项目地址: https://github.com/liuzhengyang/gobeanstalk

go-beanstalk 是beanstalkd 的GO语言的一个客户端.

项目还在开发中,欢迎大家提意见

介绍

beanstalkd是一个快速的、有各种用途的延迟队列 和定时任务的不同点: 定时任务以一定的周期或者在某个特定的时间运行。beanstalk可以在延迟一段时间执行。 一些使用场景:

  • 用户下单5分钟后检查用户是否完成了支付
  • 一分钟后开始一个新的程序

如何使用

Mac&Linux

安装并启动beantalkd服务器

git clone https://github.com/kr/beanstalkd
cd beanstalkd
make
./beanstalkd

使用示例

go get github.com/liuzhengyang/gobeanstalk

create a test.go file

package main

import (
	"fmt"
	"github.com/liuzhengyang/gobeanstalk"
)

func main() {
	addr := "localhost:11300"  // define server address
	newConn := gobeanstalk.NewConnection(addr)   // create new connection
	channel := make(chan int)   // create int channel
	putFunc := func() {
		// define a function which put some message to one tube
		id, _ := newConn.PutWithTube("hello", "test2", 1)
		channel <- id
	}
	go putFunc()   // run previous function in a go-routine
	id := <-channel  // wait until we finish putting
	fmt.Printf("Receive from channel message of another goroutine %d\n", id)
	listenChannel := make(chan string)  // make a listen channel for receiving results
	dealFunc := func(body string) bool {
		// define a function to deal with tube messages
		fmt.Printf("receive %s\n", body)
		listenChannel <- body
		return true
	}
	go newConn.Listen("test2", dealFunc)  // run deal function in a specified go-routing
	body := <-listenChannel     // wait our message
	fmt.Printf("Listen once %s\n", body)
	newConn.Close()   // Close connection
}

And run this

go run test.go

© 著作权归作者所有

共有 人打赏支持
上一篇: paxos_made_simple
下一篇: mysql 索引
liuzhengyang

liuzhengyang

粉丝 54
博文 18
码字总数 16157
作品 3
海淀
程序员
私信 提问
基于 Go 的 beanstalkd 客户端--gobeanstalk

go-beanstalk 是beanstalkd 的GO语言的一个客户端. 项目还在开发中,欢迎大家提意见 介绍 beanstalkd是一个快速的、有各种用途的延迟队列 和定时任务的不同点: 定时任务以一定的周期或者在某个...

liuzhengyang
2016/09/12
482
0
轻量级消息队列--beanstalkd

Beanstalk 是一个简单、快速的消息队列。Beanstalkd之于RabbitMQ,就好比Nginx之于Apache,Varnish之于Squid。后面在项目中使用Beanstalkd的过程中,更发现其简单、轻量级、高性能、易使用等...

匿名
2011/05/11
25.1K
1
Yii2 使用 Beanstalk 队列

安装 安装服务端 根据官方的教程安装,一条命令搞定。 安装 Yii2 客户端扩展 在你 Yii2 项目中执行 安装管理 Beanstalk 队列的 Web 系统 此项目是一个单独的系统,可以查看和管理队列任务 使...

小田天
2016/11/18
26
0
PHP的BeanStalkd扩展--PHP-BeanStalk

PHP-BeanStalk是基于C开发的支持PHP5和PHP7的BeanStalkd扩展,此扩展相对php书写的客户端性能提升一倍左右 实现了对BeanStalkd协议的支持。 BeanStalkd是一个高性能的队列服务器,而当前的p...

qzfzz
2016/05/09
1K
0
Beanstalkd 1.10 发布,轻量级消息队列

同往常一样,Beanstalked在2.0发布前都不会出现兼容标准方面的改变。以后在Beanstalked1.x上进行的操作将不能在Beanstalked1.0上操作。 新增功能: 修复了suspend和其他入口的崩溃(#220) ...

大胖森
2015/03/18
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

泛型就这么简单

前言 从今天开始进入Java基础的复习,可能一个星期会有一篇的<十道简单算法>,我写博文的未必都是正确的~如果有写错的地方请大家多多包涵并指正~ 今天要复习的是泛型,泛型在Java中也是个很...

群星纪元
24分钟前
2
0
大数据提醒你:中国这些古建筑,可能是下一个巴黎圣母院!

大家晚上好,我是今天的提笔人嗅嗅。 巴黎圣母院失火事件让我的心情很沉重,一句无关痛痒的安慰“巴黎不哭”,已经不能表达我对这场文化之殇的惋惜之痛,人类伟大的建筑在一瞬间被毁灭。 世界...

forespider
35分钟前
0
0
mysql函数substring_index的用法

substring_index 按索引字符位进行截取字符串 substring_index(“待截取的字符串”,“截取数据依据的字符”,截取字符的位置N) 第三个参数可正,可负。正数表示索引字符前面的字符串,负数...

echojson
35分钟前
1
0
好程序员web前端分享用CSS和JS打造一个简单的图片编辑器

好程序员web前端分享用CSS和JS打造一个简单的图片编辑器,本文主要是利用CSS的 filter和简单的Jquery代码来实现一个简单的图片编辑器,包括对图片的透明度,黑白,图片亮度等调节。 CSS filt...

好程序员IT
45分钟前
2
0
浅析spring mvc的细节

spring mvc 整体结构 系统监听到请求 -> 通知tomcat -> 根据web.xml 通知相应的拦截器(spring mvc 通常指DispatcherServlet) --> 检查url是否有相匹配的请求实现 --> 拿到请求实现bean的适配...

最爱肉肉
46分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部