TQ を利用するとき、 いつもはタスクを受ける HTTP の受け口(handler)を定義して、 taskqueue パッケージで実装を完結させていただけど、 「今回は delay パッケージ使ってみようかなー」 と思ったので違いを調べてみた。それぞれの使い方とかはネットに転…
ググると、旧 appgneine パッケージに対する設定方法しか引っかからないので、 google.golang.org/appengine に対する設定方法をメモとして残しておく。結論から言うと、 context.WithTimeout() or context.WithDeadline() を利用して設定する。以下は conte…
存在は知っていたが、 普段 GAE を利用する上で特に利用する機会がなかったので、 SocketAPI について調べてみた。 SocketAPI クオータ GCPサービスとSocketAPI 課金してないとエラー まとめ SocketAPIドキュメントは以下。 https://cloud.google.com/appeng…
これは Go Advent Calendar 2017 その2 6日目の記事です。 https://qiita.com/advent-calendar/2017/go2みなさん、こんにちは。 pospome です。 普段は GAE/Go でサーバサイドの開発をしています。twitter では 実装パターン, DDD, golang, GCP についてつぶ…
最近、golang のレイヤ構造において、他のコードに影響なくインフラレイヤのデータソース実装を差し替えることは可能か? という質問を受けた。回答時間が限られている中で質問を受けたので、 「現実的には難しい」という雑な回答しかできなかった。さすがに…
Datastore へのキャッシュに Memcache を利用している場合、 Memcache が落ちると Datastore のパフォーマンスが劣化することがある。当たり前と言えば、当たり前だが、 こういったケースを想定できていなかったので、 書いておく。 パフォーマンス劣化につ…
Datastore のバックアップが失敗すると以下のようなエラーが出る。 Transaction collision. Retrying... (/base/data/home/runtimes/python27_experiment/python27_lib/versions/1/google/appengine/api/datastore.py:2688)Contention on slice xxxxxxxxx ex…
devfest 2017 tokyo の発表資料です。 Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える from pospome 当日は入室できない人もいたらしい & 機材トラブルで10minほど開始が遅れてしまった ということで申し訳なく思っています。また、立…
struct のフィールドを1つ削除してから goon で Get() したら以下のエラーが出た。 goon: Failed to decode field createdAt - gob: decoding into local type time.Time, received remote type []int craetedAt が decode できなかったらしい。 で、根本原…
datastore 上に 特定の int の ID を key とするマスターデータを作りたいと思った。 例えば、以下のように key に既存の商品IDをセットするようなケース。 -------------------------- key | name | createdAt -----|------|------------- 1001 | 醤油 | 20…