Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

BPStudy #40 - Google Appengine 1.4.0

3,193 views

Published on

Published in: Technology
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE Format, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

BPStudy #40 - Google Appengine 1.4.0

  1. 1. Google Appengine 1.4.0 Channel API, Warmup Requests, Metadata Queries などなど http://s.beproud.jp/channel-api
  2. 2. 自己紹介 <ul><li>名前 : Ian Lewis
  3. 3. 所属 : BeProud
  4. 4. タグ : #beproud #redbull #python #django #appengine #kayja #kay_fw
  5. 5. Appengine API Expert
  6. 6. http://www.ianlewis.org/
  7. 7. http://twitter.com/IanMLewis
  8. 8. http://bitbucket.org/IanLewis </li></ul>
  9. 9. タスクキュー正式リリース <ul><li>google.appengine.api.labs.taskqueue が deprecated になって、 google.appengine.api.taskqueue に移動。
  10. 10. Cron と タスクキューの時間制限が 10 分になりました。
  11. 11. タスクキューのデータがクオータに含まれる </li></ul>
  12. 12. タスクキュー正式リリース
  13. 13. タスクキュー正式リリース <ul><li>タスクをキューに投げる時に 実行するためのデータを一旦 DataStore に保存
  14. 14. このデータ量が クオータに 含まれる  </li></ul>
  15. 15. メタデータクエリー
  16. 16. メタデータクエリー <ul><li>Namespace 、 Entity 、 Property のメタデータをクエリーすることができるようになりました。 </li></ul>for namespace in Namespace . all(): print namespace . namespace_name for kind in Kind . all(): print kind . kind_name for property in Property . all() . ancestor(kind): print &quot; %s&quot; % property . property_name
  17. 17. Always On <ul><li>ビリングを有効にすると、 3 つの常設インスタンスを立ち上げることができます。
  18. 18. あまりアクセスがこなくても、 spin up の時間がかからないので、早い </li></ul>
  19. 19. Warmup Request <ul><li>ロードが高くなっている時に新しいアプリケーションインスタンスを作って、ロードしてない状態でリクエストを投げる </li></ul>
  20. 20. Warmup Request <ul><li>新しいインスタンスを立ち上げる時に、ユーザーからのリクエストが来る前に warmup リクエストを投げる。 </li></ul>inbound_services : - warmup - url : /_ah/warmup.* script : warmup.py import mybigmodule import myothermodule def main(): print &quot;Content-type: text/plain&quot; print &quot;OK&quot;
  21. 21. Channel API <ul><li>クライアントにデータを push することができる。
  22. 22. ユーザーに通信ソケット「チャンネル」を作る。
  23. 23. クライアントがそのソケットからデータを受けとります。 </li></ul>
  24. 24. Channel API
  25. 25. Channel API <ul><li>3つのステップがある。 </li><ul><li>チャンネルを作成。 ID をクライアントに渡す。
  26. 26. クライアントがソケットに接続する。ハンドラーを設定
  27. 27. チャンネルにメッセージを送信。クライアント側で受け取る。 </li></ul></ul>
  28. 28. Channel API from google.appengine.ext import webapp from google.appengine.api import channel from django.template.loader import render_to_string class MyHandler(BaseHandler): def get(self): user = users . get_current_user() # ユーザーのチャンネルを作る # create_channel に渡すデータは単の文字列でも大丈夫 id = channel . create_channel(user) return self . response.out . write(render_to_string( &quot;index.html&quot; , { &quot;channel_id&quot; : id}))
  29. 29. Channel API from google.appengine.api import channel from google.appengine.api import users class AjaxHandler(BaseHandler): def get(self): user = users . get_current_user() # メッセージをクライアントに渡す。 # クライアントが接続している状態が不要 # 誰も接続してない場合は何もしない # ここでテキストデータを送るけど、 JSON がおすすめです channel . send_message(user, &quot;Hello World!!&quot; )
  30. 30. Channel API var channel = new goog.appengine.Channel( &quot;{{ channel_id }}&quot; ); var socket = channel . open(); socket . onopen = function() { window . setTimeout( function () { alert ( 'Connected!' )}, 100); } // メッセージのハンドラーを登録 socket.onmessage = function (evt) { // テキストを受けているけど、 JSON がおすすめ // var o = JSON.parse(evt.data); alert (evt.data); // do something }
  31. 31. Channel と Socket の違い?
  32. 32. デモ http://s.beproud.jp/bpstudy40demo
  33. 33. デモ http://s.beproud.jp/bpstudy40map
  34. 34. 質問 [email_address] @IanMLewis

×