基于 Go 的 beanstalkd 客户端 gobeanstalk

GPL
Google Go
跨平台
2016-09-12
liuzhengyang

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

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Yii2 使用 Beanstalk 队列

安装 安装服务端 根据官方的教程安装,一条命令搞定。 安装 Yii2 客户端扩展 在你 Yii2 项目中执行   $ composer require udokmeci/yii2-beanstalk "dev-master" 安装管理 Beanstalk 队列的...

2016/11/18 15:30
88
0
基于大并发抽奖的队列实现

安装消息队列软件:beanstalk --服务器:http://kr.github.io/beanstalkd/download.html --客户端:https://github.com/pda/pheanstalk/ 安装进程管理软件:supervisor,见:http://my.oschi...

2014/11/13 11:04
81
0
Python使用 Beanstalkd 做异步任务处理的方法

使用 Beanstalkd 作为消息队列服务,然后结合 Python 的装饰器语法实现一个简单的异步任务处理工具. 最终效果 定义任务: from xxxxx.job_queue import JobQueue queue = JobQueue() @queu...

2018/05/02 19:03
33
0
主要PaaS平台支持语言整理

AWS Elastic Beanstalk GAE Windows Azure CloudFoundry Heroku OpenShift SAE BAE tsuru(基于Juju) Java x x x x x x x x Ruby x x x x PHP x x x* x x x Python x x x x* x x x x .NET x ...

2013/03/29 14:37
203
0
gobeanstalk - go语言beanstalk客户端

# 项目地址: https://github.com/liuzhengyang/gobeanstalk # go-beanstalk 是[beanstalkd](https://github.com/kr/beanstalkd) 的GO语言的一个客户端. 项目还在开发中,欢迎大家提意见 # 介绍...

2016/09/08 23:30
18
0
phalcon队列使用Queueing

参考资料: - [phalcon文档](https://docs.phalconphp.com/zh/latest/reference/queue.html) - [phalcon queueing使用心得](http://flyhighest.com/archives/50) - [Phalcon with Beanstalkd...

2016/08/18 11:41
79
0
针对《谈对国内公有云两个计费现象的思考》的想法

有某AWS专家-原文是“阮志敏, AWS认证架构师(专业级别)”在CSDN上发了一篇文章《谈对国内公有云两个计费现象的思考》http://www.csdn.net/article/2014-08-13/2821180 他说了几点 * IasS...

2014/08/13 15:39
144
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部