0

共有 Web ホスト上に、過去 30 分間更新されていない 40 個の「フィード」を約 300 個選択し、cURL 要求を作成してユーザーに配信する PHP スクリプトがあります。

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

更新をできるだけ早く配信できるようにしたいのですが、自分のサーバーやフェッチしているサーバーを停止させたくありません (ほんの一握りです)。

cron ジョブはどのくらいの頻度で実行する必要がありますか? また、実行ごとのフェッチ数を制限する必要がありますか? 何人まで?

4

2 に答える 2

1

各フィードが実際に変更される頻度を「評価」することをお勧めします。つまり、1 回の変更に平均 24 時間かかるものがある場合は、12 時間ごとにフェッチするだけです。

#changes と #try を保存し、チェックする必要があるものを選択するだけです...スクリプトを毎分実行し、残りはいくつかの統計に任せることができます!

于 2009-01-04T19:18:56.047 に答える
0

共有ホストでは、スクリプトの実行時の問題が発生する場合もあります。たとえば、スクリプトが 30 秒以上実行されると、サーバーが終了する可能性があります。これがホストに当てはまる場合は、各フィードの処理にかかる時間をいくつかテスト/ログに記録し、同時に処理する必要があるフィードの数を把握する際にそれを考慮に入れることをお勧めします。

これを修正するために私がしなければならなかったもう 1 つのことは、個々の要求を処理するに「最後のスキャン」を更新済みとしてマークすることでした。これにより、問題のあるフィードが引き続き失敗し、cron 実行ごとに取得されなくなりました。必要に応じて、失敗時にエントリを再度更新し、失敗が発生した理由 (既知の場合) を指定できます。

于 2009-01-04T19:23:56.660 に答える