(私たちのサーバーは Linux ベースです)
私は経験豊富な PHP 開発者ですが、常に実行してデータを取得するボットを初めて開発します。
簡単な (そしてサンプルの) シナリオでアプリケーションを説明します。私は約 2000 の Web サイト URL を持っており、私のアプリケーションはこの URL にアクセスし、Web ページの内容を記録します。このアプリケーションは、7 日 24 時間動作します。2000 の Web サイトが終了すると、再び機能し始めます。
しかし、私のサーバーにはいくつかの提案が必要です。ご覧のとおり、サーバーをシャットダウンするまで、アプリケーションは無限に実行されます。私はこれでこの無限ループを行うことができます:
while(true)
{
APPLICATION CODES HERE
}
しかし、これはサーバーにとって悪になると思います:)サーバー側でこのようなことをすることは可能ですか?
また、cronjobsを使用すると思いますが、私のシナリオでは機能しません。私のスクリプトはすぐに再び動作を開始するため、動作が終了します。「 30分ごとに始める」のではなく、「あなたが仕事を終えたらまた始める」必要があります。わからないので、おそらく 2000 の Web サイトすべてを取得するのに 30 分以上かかるか、30 分未満かかるでしょう。
うまく説明できたと思います。
また、メモリ使用量も気になります。ご存知のように、ガベージ コレクターは、PHP スクリプトが停止するたびにメモリをクリーンアップします。しかし、私が言ったように、私のアプリは数日 (おそらく数週間) 停止しません。したがって、ガベージ コレクターはトリガーされません。スクリプトの最後で使用されているすべての変数を手動で設定解除しています ( unset() function )。それは十分ですか?
サーバー管理者からの提案が必要です:)
PS。Web アプリケーションではなく、コンソール アプリケーションとして開発しています。コマンドラインから実行できます。