タグ

ブックマーク / qiita.com/najeira (6)

  • Go 1.8 の HTTP Server Graceful Shutdown を試す - Qiita

    Go 1.8 で net/http パッケージに Server.Shutdown メソッドが追加されます。 シグネチャはこちら: srv := &http.Server{Addr: ":8080"} // サーバはブロックするので別の goroutine で実行する go func() { if err := srv.ListenAndServe(); err != nil { log.Print(err) } }() // シグナルを待つ sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGTERM) <-sigCh // シグナルを受け取ったらShutdown ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) if err :

    Go 1.8 の HTTP Server Graceful Shutdown を試す - Qiita
  • Go Web Frameworks 比較 - Qiita

    Go言語にはいろいろなWebフレームワークが存在して、はっきりとしたデファクトスタンダードが決まっていません。 しいて言えば標準パッケージの net/http がデファクトですが、世の中ではそこに機能不足を感じた人たちが多くのフレームワークを開発しています。 そこで、いくつかのフレームワークを取り上げて、簡単なベンチマークと、それぞれのフレームワークでのいわゆるHello Worldの書き方をまとめておきます。 これによって、フレームワーク選びの参考になればと思います。 対象 Bone Echo Gin Gocraft Goji Gorilla Kami Martini Revel、BeegoKochaなど、見かけたが入れていないものがいくつかあります。コマンドでスケルトンを作るもの、net/http の Handler interface を満たさないものは除外しました。 追加してくれ

    Go Web Frameworks 比較 - Qiita
  • Go言語でBigQueryのクエリを実行してみる - Qiita

    概要 Go言語からBigQueryのクエリを実行してみたので、そのメモ。 import Google提供のBigQueryのライブラリと、認証周りで使うライブラリをimport。 "google.golang.org/api/bigquery/v2" "golang.org/x/net/context" "golang.org/x/oauth2/jwt" cfg := jwt.Config{ Email: account, PrivateKey: pem, Scopes: []string{bigquery.BigqueryScope}, TokenURL: "https://accounts.google.com/o/oauth2/token", } ctx := context.Background() client := cfg.Client(ctx) conn, err := bi

    Go言語でBigQueryのクエリを実行してみる - Qiita
  • Go言語で非同期処理の結果を受け取る - Qiita

    Go言語にはgoroutineというものがあり、複数のタスクを並行(Concurrent)に実行したい場合に役立ちます。 またGo言語では、ライブラリなどのAPIは基的に同期版を提供し、非同期で処理したい場合は呼び出し側がgoroutineで非同期化するのが一般的です。 そこで、goroutineを使って関数を呼び出し、その結果を得るための実装方法について、自分なりに考えてみたので、ここにまとめておきます。 戻り値がない 戻り値がなく、処理が終わっていればよい場合: // boolでもよいが空struct done := make(chan struct{}, 0) go func() { // 何か処理をする close(done) }() // chanがcloseされるまでブロックする <-done 値の受け渡しがない場合はシンプルです。 Tips: 空structについて 値の受

    Go言語で非同期処理の結果を受け取る - Qiita
  • Amazon CloudFront の障害に備えてフェイルオーバーを設定する - Qiita

    時間 2014/11/27 の AM9時〜AM11時頃まで、全世界的に Amazon CloudFront に障害がありました。 CDNとして CloudFront を利用しつつ、障害時にはフェイルオーバーする方法をまとめました。 S3 CloudFrontのOriginがS3でない場合は、この項の設定は関係ありません。 CloudFrontのOriginとしてS3を使う場合、以下のようにします。 file.example.jp のような、使いたいドメイン名で S3バケット を作る Static Website Hosting を有効にしておく ドメイン名のバケットで Static Website Hosting が有効になっていないと、後述の Route53 の Alias Target に設定できません。 Health Check Route53 の Health Checks を

    Amazon CloudFront の障害に備えてフェイルオーバーを設定する - Qiita
  • fluent-plugin-bigquery の設定 - Qiita

    BigQuery側で「1リクエスト500行まで」という制限があるので500とする。 500ちょうどにしておくとエラーになることがあるという情報があるので、300程度にしておくとよいかもしれない(コメント欄参照)。 buffer_chunk_limit チャンクごとの最大バイト数。 BigQuery側で「1リクエスト1MBまで」という制限があるので1000000とする。 1MBちょうどにしておくとエラーになることがあるという情報があるので、768k程度にしておくとよいかもしれない(コメント欄参照)。 buffer_queue_limit プラグイン側でいくつのチャンクをメモリに保持しておくか設定できる。 デフォルト値は1024となっている。 小さすぎるとキューが溢れてエラーとなってしまうので、メモリ量と相談して大きめの値にしておくとよい。 1チャンクの最大サイズが1MBなので、デフォルトの1

    fluent-plugin-bigquery の設定 - Qiita
  • 1