サーバークライアントアプリで不安定なインターネット接続を処理する

StackOverflow https://stackoverflow.com/questions/999524

質問

サーバークライアントアプリで不安定なインターネット接続を管理するにはどのようなテクノロジーを使用できますか。私は主に PHP (+Zend Framework) を知っており、C# と ASP.NET MVC を学習しています。WCF/MSMQ が役立つと聞いたのですが...しかし、どうやって...PHP (私にとってはこちらの方が馴染み深い) でできることはありますか?ただし、.NET の代替手段の方が優れている場合は、その代替手段を知っておくのも良いでしょう。

背景:

client***s*** はサーバー データベースに接続して CRUD を実行します。ただし、インターネット接続に障害が発生すると、これは不可能になります。それで、これをどうやって修正すればい​​いですか?

現在使用されている解決策は、localhost データベースを使用することでした。一日の終わりに、すべてのクライアントがサーバーにアップロードし、朝サーバーから「統合された」データベースをダウンロードします。アップロード/ダウンロードが失敗する可能性があるため、これは確実ではありません。大量のデータが転送されることを考慮すると、その可能性は実際に高まります。

アップデート:MSMQ/WCF に代わる PHP/Zend Framework/MySQL はありますか?

役に立ちましたか?

解決

WCF は、信頼性の高いメッセージ転送のためのさまざまなテクノロジをサポートしているため、役立ちます。

役立つかもしれないことの 1 つは、クライアントにデータをローカルで変更させてから、それらの変更を信頼できるメッセージ キューにアップロードすることです。1 回のトランザクションですべての変更をアップロードすることはありません。一度に 10 件、場合によっては 1 件ずつアップロードできます。アップロードされたメッセージがサーバー上で処理されると、サーバーはトランザクション結果を各クライアントに固有の別のキューに書き込みます。アップロード後 (または同時に)、クライアントはそのキューをチェックして、各アップロードの結果がどうなったかを確認します。結果が成功した場合、クライアントはローカル データベースを削除できます。結果が失敗した場合、クライアントはアップロードを再試行する必要があります。

もちろん、エラーを回復しようとすることで状況が悪化しないように常に注意する必要があります。不良リンクでの再試行トラフィックが多すぎると、次のような問題が発生する可能性があります。 もっと トラフィック自体の回復が必要な場合もあります。

そしてもちろん、究極の解決策は、より信頼性の高いリンクに移行することです。必ずしも高速になるわけではありませんが、信頼性が向上します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top