Skip to content

Instantly share code, notes, and snippets.

@minoritea
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save minoritea/2f84949dc3f89fd94d6f to your computer and use it in GitHub Desktop.
Save minoritea/2f84949dc3f89fd94d6f to your computer and use it in GitHub Desktop.
goquu

#Goquu

##GoでJob Queueシステムを作ってみた

@snowcrush


#Goquu

作ってみた(完成したとは言っていない) https://github.com/minoritea/goquu


#Why create?

  • お仕事はぺちぱーやってます
  • PHPでもJobQueue作りたい
  • PHPでdaemonたてるのって結構大変
  • あんまり複雑な仕組みにしたくない(フレームワーク等に依存したくない)
  • セットアップに手間をかけたくない

#Why golang?

  • シングルバイナリが吐ける(依存関係考えなくてよい)
  • システムプログラミングに向いている
  • 並列処理が書きやすい

#作りたいもの

  • ジョブの登録はRestful
  • ジョブの実行はシェルコマンド
  • 入出力はUnixパイプで受け渡し

#Backend

  • LevelDB
  • Goにもポートされている
  • シンプルな組み込みKVS
  • データ型やキューの仕組みは無いので自前で作成

#API

  • Restful-API
  • net/http でシンプルに

#Worker

ただのUnixコマンドなのでPHPだけでなくシェルスクリプトでもRubyでもなんでも動きます


#結果

  • 一応動くものは出来ました
  • まだコードが汚いので直したい
  • 業務で使うかどうかは結局うやむやに
  • Goでツールを作る勉強にはなった

Goはシステムツール作りに向いている!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment