Android用コミックビューワー ComicCafeの公式ページです。This wiki is official page for ComicCafe.

質問

  • 33 comiccafeapp comiccafeapp - 13/09/04 01:37:18

    >>32

    タイムアウトの概念はサーバとクライアントの2種類がありますので、それぞれについて説明します。
    ちょっと技術者よりの言葉になってしまいますがご了承下さい。

    ■サーバー
    1.サーバーはクライアントからのページ取得のリクエストを受け取るとキャッシュをチェックします。
    2.キャッシュ内にイメージファイルが見つかった場合は、イメージを加工(サイズ調整、品質調整、トリミング等)してクライアントに返します。
    3.キャッシュ内にイメージファイルが見つからなかった場合、圧縮ファイルの解凍依頼をバックグランドスレッドに依頼します。
    4.依頼されたバックグランドスレッドは対象ファイルを解凍し、解凍できたイメージを次々キャッシュに格納していきます。
    この処理はキャンセルされることはありません。またPDFの場合は1ページづつイメージに変換してキャッシュに格納していきます。
    PDFのイメージ変換処理はCPUコストが高くサーバのスペックによっては非常に時間のかかる処理です。
    ただ、一度イメージに変換してキャッシュされれば、次回からは手順2のキャッシュから読み込むだけの処理になるので、パフォーマンスの問題になることはありません。
    5.メインスレッドはリクエストされたページがキャッシュに登録されるのを待ちます。20秒経過してキャッシュからイメージを取得できない場合は、クライアントに404を返します。
    ただしバックグランドの解凍処理は継続するので、クライアントがリトライすれば、そのころにはきっとキャッシュにページが格納されていることでしょう。

    上記のようにサーバー側のタイムアウトは解凍処理に20秒以上かかった場合に発生します。
    このタイムアウトはサーバのスペックが低い場合に、本の読み始めに発生する可能性があります。
    一度、解凍されてイメージがキャッシュされれば、サーバの負荷はそれほど高くないので、よほど低スペックのマシンでない限り発生することはまれだと思われます(実際に検証したわけではないです。。。)

スレッド一覧に戻る
このスレッドに投稿する(は入力必須)

全角1000文字以内

※それぞれ5MB以下のJPG,PNG,GIF形式のファイルを3枚までアップロードできます。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます