/ / Cronスクリプトをロードするための最良の方法 - php、mysql、スクリプティング、cron、ホスティング

1000のCronスクリプトを読み込むための最良の方法 - PHP、MySQL、スクリプト、cron、ホスティング

私は「いくつかの研究をしてきました。当社のサイトのいずれかを実行するための最良の方法を見つけ出す。つまり、約100個のサブドメインがあり、各サブドメインには実行する必要がある21個のcronスクリプトがあります。私はそれが使用されることができるいくつかのfopen関数を使用することによって11にそれを短くしました。各サブドメインは、データを抽出してローカルのmysql DBに保存するために、同じAPIを使用します。すべてのサブドメインには独自のDBがあり、それは共有されておらず、それらはすべて固有のデータであるため、これらのデータベース間で情報が重複することはありません。

私たちはVPSホスティングでそれをホストするつもりです、それは私が最も良い考えであると確信していません、しかしそれは我々が予想していることから仕事をするべきです。これら11のスクリプトの間隔は以下のうちの1つです:

5分、8分、10分、15分、30分、45分、1時間、3時間、8時間、12時間、および24時間

10分未満の間隔で実行されるものは、一般的にロードするのがとても速いです(20秒/スクリプト以下)。

私の質問は、何もせずにこのたくさんのスクリプトを開くための最善の方法/ベストプラクティスは何でしょうか... a。)サーバーをクラッシュさせる b。)サーバーをばかげたことに遅くする c。)cronスクリプトをタイムアウトにしないでください。

方法についての私の考え: 1)合計11個のcronスクリプトを作成し、各スクリプトの間にsleep()関数を入れてfopen関数を実行します。問題は、スクリプトごとに開く必要がある100個のファイルがあることです。 2)設定した時間に実行する1100個のcronジョブを作成します。 3)ファイルごとに10個のスクリプトを実行する、約110個のfopen cronスクリプトを作成します。

誰かがヒントやコツを手伝ってくれるのなら、それは大歓迎です!

また、サーバーを使用するには、専用またはVPSが必要ですか。

回答:

回答№1は2

私があなたを正しく理解していれば、おそらく11個のcronスクリプトをセットアップしたい場合、それらの各cronスクリプトは必要な他のスクリプトを順番に呼び出します。おそらくそれらの間でsleep()する必要はないでしょう。それらは並列ではなく順番に実行されるからです。サーバーの負荷を軽減するために、 "nice"コマンドを使用してスクリプトを低い優先順位で実行させることもできます。

専用またはVPSは完全に方法に依存していますサーバーに大きな負荷がかかります。 VPSのパフォーマンスもプロバイダによって大きく異なります。それは与えられた情報から実際には判断できません。あなたがお金を節約しようとしているなら、私はちょうどVPSでそれを試してみると思います。後でもっと高価な専用サーバーにいつでも移動できます。