XML Fetcher Cronジョブ:フェッチの頻度と数を実行しますか?
質問
過去30分以内に更新されなかった40個を最大300個の「フィード」から選択し、cURLリクエストを作成してユーザーに配信するPHPスクリプトを共有Webホスト上に持っています。
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ジョブを実行する頻度と実行ごとのフェッチ数を制限する必要がありますか?いくつまで?
解決
「評価」するのは良いことです。各フィードが実際に変更される頻度です。変更ごとに平均時間が24時間ある場合、取得するのは12時間ごとです。
#changesと#try'sを保存し、確認する必要があるものを選択してください...スクリプトを毎分実行し、残りの統計をいくつかの統計に任せることができます!
他のヒント
共有ホストでは、スクリプト実行時の問題が発生する可能性もあります。たとえば、スクリプトが30秒より長く実行されると、サーバーが終了する場合があります。ホストの場合は、各フィードを処理するのにかかる時間のテスト/ログ記録を行い、同時に処理するフィードの数を把握する際にそれを考慮することをお勧めします。
これを修正するために私がしなければならなかったもう1つのことは、「最後のスキャン」をマークすることでした。 更新前のように、問題のフィードが失敗し続けたり、cronの実行ごとにピックアップされたりしないように、個々のリクエストを処理しました。必要に応じて、失敗時にエントリを再度更新し、失敗が発生した理由(わかっている場合)を指定できます。
所属していません StackOverflow