Go 异步任务队列 Go Machinery

码农软件 · 软件分类 · 并发/并行处理框架 · 2019-09-02 18:13:18

软件介绍

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)


本文地址:https://codercto.com/soft/d/13733.html

Perl语言入门 第六版(中文版)

Perl语言入门 第六版(中文版)

Randal L.Schwartz、brian d foy、Tom Phoenix / 盛春 / 东南大学出版社 / 2012-3 / 62.00元

《Perl语言入门(第6版)(中文版)》根据作者施瓦茨、福瓦、菲尼克斯从1991年开始的教学经验积累汇聚而成,多年来十分畅销。此次第六版涵盖了最新的Perl5.14版本的变化。《Perl语言入门(第6版)(中文版)》每章都包含若干习题,帮助你巩固消化刚学到的知识。也许其他书籍只是想着灌输Perl编程的条条框框,但《Perl语言入门(第6版)(中文版)》不同,我们希望把你培养成一名真正的Perl程序......一起来看看 《Perl语言入门 第六版(中文版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码