golang queue処理のライブラリを作ってみた

はじめに

開発をしていると度々queueの実装が必要になることが多かったので一々実装するのが面倒になっていた。

そのため、今回jobに関数を渡してqueueを実行するライブラリを作ってみた

githubリポジトリこちら

導入

queueのライブラリをgo get

go get -u https://github.com/y-ogura/queue

dispatcherの起動

package main

import "https://github.com/y-ogura/queue"

func main() {
        // create the job queue.
    jobQueue := make(chan queue.Job, 10000)

    // start the dispatcher.
    dispatcher := queue.NewDispatcher(jobQueue, 5)
    dispatcher.Run()
}

Jobの追加

// add new job
jobQueue <- func() error {
        // 実行したいJobの関数
        err := xxxFunction(arg)
        return err
}