[PHP-users 20590]Re: 商品在庫数のタイムラグの回避

Reiji Matsumoto matsumoto @ spline.oc.to
2004年 2月 28日 (土) 13:04:50 JST


Matsumoto @ Spです。

> 場合によっては手書きがいい。そういったインターネット上の展開は
> しない方がいいというアドバイスのできるコンサルタントです。
そうですね。コマースサイトと言っても非常に多くのケースがあります
ので、それもひとつの選択肢だと思います。自動化する上でも最終的に
(簡単な)手動修正の手段を用意しておかないと、思わぬエラーで問題
が発生する事もありますし。

> メール配信も、私は手元サーバでやる主義なんですが、どうなんでしょうか?

うちの場合は手動配信の手段を残しつつ(顧客が選択できる)自動化してます。
当初、メール配信自体をDBのトランザクションの中に括っていました。
メールの配信に失敗したらロールバックするというシステムです。
これはこれで有用性はあったのですが、DBとの接続時間がかなり長くなるため
問題もあります。
現在はメール配信とDB更新は別の処理にしています。万が一、一連の処理が
完結しないうちに停電等の障害が発生した場合、処理がどこまで進んでいるか、
メールは配信済なのかそうでないか、トランザクションはコミットされたのか
等を、ソリューション上から確認できるようにしました。

その辺のシステムにしてもやはり設計の問題になってくると思います。
うちのシステムの場合、障害時において

・メールは一度も配信されないよりは2回配信された方がまし
・悪い知らせ(売り切れ)の間違いは最悪あってもかまわないが、良い知らせ
(購入できました)の誤配信は許されない

等のいくつかのポリシーを設定し、それに基づきコーディングしました。




PHP-users メーリングリストの案内