4

私は何千もの製品があり、各製品の価格が継続的にチェックされ、他のサイトと最新の状態になっている状況があります. 高速処理のために、複数のリンクを作成しました。各リンクは 50 レコードのみを処理します。高速処理のためにすべてのリンクを 5 つのサーバーに分割しました。

12時間ごとに処理する必要がある各リンクのcronジョブをセットアップしました。ただし、単一サーバーでの 2 つのリンク処理時間の間には 15 分のギャップがあるはずです。

手動で生成されたリンクの膨大な数があるため。(約 230 リンク以上)、リンクごとに手動で cron ジョブをセットアップするのは簡単ではありません。

このため、動的な php スクリプトを記述して、230 個のクローン ジョブ リンクを生成したいと考えています。

txtファイルを作成し、約230リンクのcronジョブのスクリプトを生成します。ここにサンプル例があります。

0 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?  id=1&size=50
15 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=2&size=50
30 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=3&size=50
45 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=4&size=50
.....
230 crone job links

サーバー上で動的に生成されたスクリプトを実行して、手動で実行する代わりにすべての cron ジョブを自動的にインストールする方法はありますか?

4

2 に答える 2

2

これは crontab をフラッディングし、特に将来さらに多くの仕事を得る場合には、何の役にも立たないでしょう。スクリプトを 1 つだけ使用して 15 分間実行し、スクリプト内の時間を確認することをお勧めします。0、15、30、または 45 分に応じてリンクを処理します。

より多くのリンクを取得したら、各実行でより多くのリンクを処理するか、crontab の 1 行とステートメント スイッチを変更するだけで呼び出し間の時間を短縮できます。

于 2012-11-12T14:19:44.610 に答える
1

1 つの cron ジョブとシェル スクリプトを使用して、すべての php 呼び出しをループします。

Linux を使用している場合は、次のようになります (テストされていない単純な例...):

#!/bin/bash
for ((i = 1; i < 5; i++))
do
   /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=[$i]&size=50
   echo "Finished batch: $i"
done

そして5、あなたが望むものに変えてください。

于 2012-11-12T14:28:16.097 に答える