-1

毎秒 APC に多くの変数を格納しています。同時に、APC から変数を読み取り、APC から変数を削除してデータベースに保存するための PHP プロセスを継続的に実行する CRON タスクがあります。PHP スクリプトは、プレフィックスで識別されるすべての変数を取得します。問題は、PHP プロセスが APC にアクセスし、すべての変数を読み取り、APC からそれらを削除してデータベースに挿入している間に、別のプロセス (CRON によっても起動される) が同じデータを読み取る可能性があることです。これは、まだ削除されていないためです。データベース内のデータを複製しています。これに対する解決策はありますか?多分それはAPCの制限ですか?

前もって感謝します。

マーク

4

1 に答える 1

0

まず、好奇心から、このソリューションの背後にある理由を知りたいです! 興味深い!

しかし、これは時限ジョブでよくある問題です。より深刻な懸念は、cron ジョブの 1 つが完了するまでに時間がかかり、別のジョブが開始されると、サーバーの負荷が 2 倍になり、完了までに 2 倍の時間がかかり、最終的にはループに陥る可能性があることです。サーバーをダウンさせます。面白い問題です!

以前のジョブが実行されているコードを通知するスイッチを設定することで、以前に解決しました。ジョブが終了したら、スイッチを削除します。次回は cron が再度実行されます。そのスイッチを APC に入れることができます。

于 2013-06-07T09:34:00.863 に答える