このシナリオに最適なApache2設定

このシナリオに最適なApache2設定

このシナリオにおける Apache Web サーバーの最適な構成についての意見を聞きたいです。

定期的に実行されるスクリプト (PHP) が多数あり、そのほとんどが同時に実行されるか、または cron ジョブを介して同じ時間間隔で実行されます。

ウェブページと呼ばれ、PHP で記述されたこれらのスクリプトをどんどん追加していくと、それらがすべて同時にトリガーされるため、途中でいくつかが「失われる」可能性があると少し心配になります。

実際にこれらのページを見る人は誰もいませんし、これらのページが読み込まれるのを待つ人もいません (数秒の遅延は問題ではありません)。そのため、Apache が一定期間内に処理できない場合にページを破棄するのではなく、すべてのページ呼び出しが実際に処理されるようにするには (数秒の遅延があっても)、apache2.conf のどの設定を確認すればよいのか疑問に思っていました (Web サーバーを閲覧しているユーザーが閲覧している標準の html/php ページとは異なり、これらは実際には誰も待っていないスクリプトを実行するページです)。

私の理想的な解決策は、特定の時間枠内に実行されなかったという理由で Apache がそれらを強制終了するのではなく、それら (cron 経由で呼び出されるページ) が積み重ねられ、次のバッチが呼び出されるまで、またはより静かな期間に 1 つずつ処理されることです。

もちろん、次のバッチの実行予定時間よりも長い時間キューイングされている場合は問題があることは理解しています。

同様に、Apache がキューに入れたものや処理中のページを表示するにはどうすればよいでしょうか?

よろしくお願いします。

答え1

cron にアクセスできる場合、このコンテキストで Apache を使用する必要性はあまりないと思います。ページを提供する必要はなく、コードを実行するだけでよいようです。

単純にこんなことを試してみてはいかがでしょうか?

#!/usr/bin/env php
<?php

[Your code here.
 Perhaps even send e-mail updates 
 including with the status of your script,
 or update a lightweight database each time
 the script has run.]

このスクリプトを /path/to/script.php として保存し、crontab で を呼び出すphp /path/to/script.php(または、./path/to/script.phpファイルに実行権限を追加する場合は を使用するchmod +x) だけで、作業が完了し、Apache のオーバーヘッドを大幅に削減できます。

関連情報