Cloud pub/sub を利用した並列分散型のタスク実行フレームワークです。 タスクは Plugin で管理することが可能で、publisher から subscriber で実行するプラグインを指定することが出来ます。
+ publisher.go
+ subscriber.go
+ lib/
`- protocol.go
+ samples/
|- sample-publisher-client.go
|- sample-subscriber-client.go
`- plugins
`- hello.go
setup environment
$ git clone git@github.com:m-yoshimo/pubsub-task-plugin-framework.git
$ export GOOGLE_PROJECT_ID="xxxx"
get libraries
$ go get cloud.google.com/go/pubsub
$ go get google.golang.org/api/iterator
$ go get github.com/dullgiulio/pingo
$ go get github.com/m-yoshimo/pubsub-task-plugin-framework
plugin は CreateMessage と Exec の 2 つの関数を実装します。
また、plugin を利用可能にするために、main 関数で plugin 登録を行います。
サンプルとして、publisher で名前を指定して、subscriber で hello + ${name}
を表示する HelloPlugin (./plugins/hello.go) を用視しています。
実装の参考にどうぞ。
pub/sub メッセージを生成します。
- args: subscriber で実行する際の引数です (Exec 参照)
- msg: メッセージを格納するポインタです
たいていの場合、サンプルの HelloPlugin (./plugin/hello.go) と同じ実装で問題ないはずです。
subscriber で実行するタスクを実装します。
- args: publisher から指定された引数です
- res: Exec のレスポンスを指定しますが、現状は利用していないので無視して構いません