0

小さな PHP サーバー/クライアント コードを作成しました。クライアント サーバーと言うときは、クライアントとサーバーが各モードで 5 秒間交互に動作することを意味します。

現在、コードは 2 つのサーバーで実行され、cron によってトリガーされます。

まれに、相互に完全に同期することができ、最後のマイクロ秒で接続を確立しても、それまでに PHP コードがクライアント モードにすでに渡されているか、まったく接続を確立できないことがあります。

このダンス全体が始まる前に、彼らはいくつかのデータベースクエリを実行して、大きくても小さくても同じではない情報を選択します。そのため、タイミングにランダム性を追加すると、このインシデントが発生することはめったになくなりますが、完全になくなるわけではありません.

このようなことを成功させた人はいますか?どのように?

4

1 に答える 1

1

ここで競合状態を設計しました。これらをどのように同期させようとしても、最終的には問題が発生します。

これを解決する方法は、各プロセスを常にサーバーとして機能させ、オンデマンドでクライアント機能を実行することです。

于 2012-12-12T16:04:21.933 に答える