Go 异步任务队列 Go Machinery

BSD
Google Go
跨平台
2015-05-11
红薯

Machinery 是一个 Go 语言的异步任务队列和作业队列,基于分布式消息传递。类似 Python 的 Celery 框架。

Machinery 中的任务(或者作业)可通过多个 worker 在很多服务器上并发的执行,或者可在单个服务器上利用 Go 的协程运行多个 worker 进程。

Example worker receives tasks

任务的定义:

type AddTask struct{}

func (t AddTask) Run(args []interface{}) (interface{}, error) {
    parsedArgs, err := machinery.ParseNumberArgs(args)
    if err != nil {
        return nil, err
    }

    add := func(args []float64) float64 {
        sum := 0.0
        for _, arg := range args {
            sum += arg
        }
        return sum
    }

    return add(parsedArgs), nil
}

type MultiplyTask struct{}

func (t MultiplyTask) Run(args []interface{}) (interface{}, error) {
    parsedArgs, err := machinery.ParseNumberArgs(args)
    if err != nil {
        return nil, err
    }

    multiply := func(args []float64) float64 {
        sum := 1.0
        for _, arg := range args {
            sum *= arg
        }
        return sum
    }

    return multiply(parsedArgs), nil
}

// ... more tasks

任务注册:

tasks := map[string]machinery.Task{
    "add":      AddTask{},
    "multiply": MultiplyTask{},
}
app.RegisterTasks(tasks)


加载中

评论(1)

小美玲
小美玲
看样子go已经威胁到python的地位了,各种工具都换成go来写了. #Go Machinery#

暂无资讯

暂无问答

【AI】Computing Machinery and Intelligence - 计算机器与智能

【论文标题】 Computing Machinery and Intelligence (1950) 【论文作者】 A. M. Turing (Alan Mathison Turing) 【论文链接】 Paper or PaperBDY(29-pages // both Single column) 1....

2018/07/05 10:46
13
0
图灵的文章“Computing machinery and intelligence”译文

图灵奠基AI的力作“Computing machinery and intelligence”全文译完,摘自http://blog.sciencenet.cn/blog-2322490-1122667.html,如有侵权及时联系我,我会第一时间删除。 计算机器与智能 ...

2019/07/05 10:41
8
0
English:2019100401_Suffix"ery"

Ax_introduction source a Frech mean to "state,quality,act,place where etc"   1)After the verb:a place for...ing   2)After the noun: indicating a place of business or some ot...

2019/10/04 22:05
11
0
Virtual Reality: Immersive Yourself In Your 3D Mockup

ESI's Virtual Reality software solution IC.IDO is an exceedingly powerful immersive engineering solution combining high-end visualization and real-time simulation of product beh...

2018/05/03 14:20
16
0
ButterKnife 8.0.1配置

ButterKnife 更新了,增加了资源绑定,并且将 compiler 分离了出来,引用方式做了改变。 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.neenbedankt.gradle...

2016/05/20 15:34
147
2
自然语言处理(NLP)之个人小结

一 概述 1.1 自然语言处理四大任务 序列标注 分词 词性标注 命名实体识别 分类任务 文本分类 情感分析 判断句子关系 问答系统 对话系统 阅读理解 生成任务 机器翻译 自动文摘 图像描述生成 ...

2019/08/17 17:54
16
0
servlet过滤器Filter使用之DelegatingFilterProxy类

  正常情况下,我们需要添加一个过滤器,需要实现javax.servlet.Filter接口,再在web.xml中配置filter,如下: package cc.eabour.webapp.security.filter; import java.io.IOExceptio...

2019/01/06 00:58
14
0
OneWire应用 单总线温度传感器DS18系列

OneWire DS18S20, DS18B20, DS1822 Temperature DS18B20 The DS18B20 digital thermometer provides 9-bit to 12-bit Celsius temperature measurements and has an alarm function with non...

2018/08/19 11:54
9
0
python惯用方法整理(Pythonic 1)

本文是从官方文档、stackoverflow和工作中收集、摘录和整理出来的一些python惯用方法,罗列在此,be more pythonic。

2016/09/22 17:50
51
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部