yuu_nkjm blog


2014-06-24(Tue) [長年日記]

[GDocs][Java][JSON-RPC] JSON-RPCサーバとJavaScriptを使ったGoogle Spreadsheetのデータの読み込み,追加,編集,削除

今さらながら,Spreadsheets Data APIを使うための基礎知識(2):APIでGoogleスプレッドシートの追加/更新/削除 (1/3) - @ITを参考に,Google Spreadsheetにアクセスするコードを書いて,動かして見た.更新がやたら遅い印象.

  • 2枚のスプレッドシートから1枚を選び出し,そのスプレッドシートに含まれる1枚のワークシートから1枚のワークシートを取り出す => 1000ms
  • 2列100行のデータを読み込む => 500ms
  • 2列100行のデータを読み込み,特定の行(20行)を選び出す => 500ms (全行取得してから自分でフィルタリング)
  • 2列100行のデータを読み込み,特定の行(20行)の値を更新 => 10s(10000ms)
  • 2列100行のデータを読み込み,特定の行(1行)の値を更新 => 10s(10000ms)
  • 2列100行を持つ表に対して,1行を挿入 => 500ms

Googleが提供しているサンプルの様にキャッシュしたらどれくらい早くなるのかは試していない.

コードはこの辺においておく.JsonRPCService/src/org/nkjmlab/gdata at master · yuu-nkjm/JsonRPCService

JSON-RPCのサーバと組み合わせて,クライアントからサーバにJSONを投げてGoogle Spreadsheetからの読込/への書込をするのが狙いだった.Javaのサービスクライアント,JavaScriptのサービスクライアントから呼び出せることを確認した.まずはここまで.

トラブルシューティング

6 24, 2014 5:39:47 午後 jp.go.nict.langrid.servicecontainer.handler.jsonrpc.JsonRpcDynamicHandler handle
警告: IOException occurred.
ClientAbortException:  java.net.SocketException: Software caused connection abort: socket write error

というエラーが,サーバ側で頻発していた.これはJavaScriptのajaxでクエリを投げるところが3秒でタイムアウトしていて,サーバ側から3秒以内に結果が戻ってこなかった場合,サーバから切断してしまう.サーバ側は3秒たった後に結果を返そうとしても接続が切れてしまっているので,上記のエラーが出る.ということだと思う.

参考ページ


トップ «前の日記(2014-06-16(Mon)) 最新 次の日記(2014-07-01(Tue))» 月表示 編集 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|