2017-12-01から1ヶ月間の記事一覧

deferでのrecoverのよくわからない挙動がよくわからない

Go

deferで呼び出した関数でrecoverした場合にはpanicは発生しない。 https://play.golang.org/p/Z0oJ2I26wq8 package main import "fmt" func main() { defer recoverFunc() panic("Panic happens!") } func recoverFunc() { if err := recover(); err != nil …

Goでgraceful restartをミニマムに書く

Go

前回の記事でgraceful shutdownをミニマムに実装した。その続きでgraceful restartをミニマムに標準パッケージのみで実装してみる。 takayukinakata.hatenablog.com 参考にしたのは以下のパッケージ。 github.com 実装 前回と同様、理解のために最低限の実装…

Goでgraceful shutdownをミニマムに書く

Go

graceful shutdownの仕組みがわかってなかったので自分でミニマムに実装してみる。 コード量が小さく読みやすかったので以下のパッケージを参考にした。 github.com github.com 実装 自分でミニマムに実装したコードは以下の通り。アクティブな接続が返って…

Goアプリケーションをsupervisorでdaemonとして起動する

起動したGoのアプリケーションをdaemonプロセスとして動かす。なお、Centos6.7を使用している。 Supervisor: A Process Control System — Supervisor 3.3.3 documentation Install $ wget https://bootstrap.pypa.io/ez_setup.py -O - | python $ easy_insta…

Goで始めるMiddleware その2

Go

前回記事を書いたがもう少し詳しく書く。 takayukinakata.hatenablog.com なぜGoでMiddlewareを書きたいのか 前回書き忘れていたところ。 おそらくだがフレームワークを使用している場合には、フレームワークがよろしくやってくれるので自分でMiddlewareをど…