Date: 2010-12-21
Tags: event, python, study, gae

BPStudy#40 に参加しました Google Appengine 1.4.0

BPStudy#40 に参加してきました。 いつも通り走り書きメモです。

今回のネタは"Google Appengine 1.4.0"。

第一部「Google App Engine1.4.0概説」

発表からひろったポイント & 清水川メモ

  • 今回の1.4.0はけっこう大きなリリース。
    • channel API

    • ライブラリ構成が変わって古いのはdeprecated扱い

    • Cronとタスクキュー時間制限が30秒から10分へ

    • タスクキューのデータがQuotaに含まれる

  • ChannelAPI
    • サーバーからクライアントへデータをpushする

    • データが大容量だときついかも知れない

    • 使うための3つのステップ
      1. サーバーで Channel ID を生成してクライアントに渡す

      2. クライアントでそのIDを使って socket に接続する

      3. サーバーからchannelにメッセージを送信。クライアントで受け取る

    • 繋ぐためのサンプルコード
    • データpushはJSONがお勧め(楽なので)

    • デモ:
    • 質疑
      • channelは何個まで開けるのか?
        • 何個でも大丈夫なはず

        • channelはブラウザ毎でも全部で1つでもよい

        • ユーザー毎に別の作業をするページならユーザー毎に開く

        • 1つのページで共同作業する場合は全体で1つ開く

      • channelのタイムアウトは?
        • 2時間くらい

        • ブラウザ側で切れてたらつなぎ直す(自動?要実装)

  • Taskキュー
    • 質疑
      • 課金は1.4から?

      • DataStoreのquotaに含むので普通のデータと合計でquota扱い

      • DataStoreが一杯で課金設定してなければTaskキューも積めない

      • Taskキューの処理は即時処理サーバーと遅いサーバーとで処理される
        • 長いTaskは遅いサーバーで。

        • どのあたりが境界線?
          • 「そうなんですよねー。よく分からないんです」@IanMLewis

第二部「Google App Engine1.4.0 ソースコードリーディング(python編)」

発表からひろったポイント & 清水川メモ

  • キャメルケース

  • 同じ名前のメソッドがあちこちのモジュールにある

  • SDKのインデントが2

  • Google Python Style Guide は1度読むと良いと思いますよ
  • SDKには不自然な空行がときどきある
    • リリース時に削除されているんじゃないかと思うが中の人じゃないと分からないだろう

以降、コードリーティング。