4

Seaside の本には次のように書かれています。

どうしてこれなの?http リクエストの処理が一時的に遅くなるだけですか、それともリクエストが失われるか、エラーが発生しますか?

4

2 に答える 2

3

イメージが保存される前に、登録されたシャットダウンアクションが実行されます。これは、ソースファイルが閉じられ、Webサーバーがシャットダウンされることを意味します。イメージが保存された後、起動アクションが実行されます。これにより、通常、Webサーバーが再度起動されます。サーバーの実装によっては、開いている接続が閉じられる場合があります。

これは、画像を保存している間は新しい接続を受け入れることができず、開いている接続が一時的に中断または閉じられる可能性があることを意味します。両方の問題について、(少なくとも)2つの簡単な回避策があります。

  1. 保存する前に、OSProcessを使用して画像をフォークします(DabbleDB、CmsBox)。

  2. 複数のイメージとロードバランサーを使用して、アクティブなサーバーからイメージを保存する前に一度に1つずつ削除できるようにします。

于 2012-06-17T12:12:45.107 に答える
3

物事を遅くするだけの問題のようです。Seaside のリストには非常に詳細なスレッドがあり、その中で最も関連性の高い投稿は、e コマース サイトのケース スタディです。

その結果、現在これが起こっています:

  1. イメージは時々 (通常は毎日) 保存され、別の「バックアップ」マシンにコピーされます。
  2. 何か問題が発生した場合、最後の画像が取得され、最後の画像保存以降に発行された注文や商品券が単純に再入力されます。

そして、#2はめったに行われませんでした-おそらく年に2、3回ですが、それは通常、私が何か愚かなことをしたためであることがわかりました.

また、Smalltalk の優れた点の 1 つは、簡単な実験を簡単に実行できることです。Seaside をダウンロードして、サンプルの 1 つのコールバックを停止できます。例えば:

WACounter>>renderContentOn: html
...
    html anchor
        callback: [ 
            self halt.
            self increase ];
        with: '++'.
...
  1. Seaside サーバーでブラウザを開きます (デフォルトではポート 8080)。
  2. 「Counter」をクリックしてサンプルアプリへ
  3. 「++」リンクをクリックします
  4. シーサイドに戻ります。停止のプレデバッグ ウィンドウが表示されます。
  5. 画像を保存する
  6. [続行] をクリックします。保存による明らかな悪影響はなく、カウンターが正しくインクリメントされていることがわかります。
于 2012-06-17T11:58:35.017 に答える