Мне было бы интересно услышать мнения о лучшей конфигурации для веб-сервера Apache в этом сценарии.

У меня есть несколько сценариев (PHP), которые выполняются через равные промежутки времени, большинство из них в одно и то же время или через одинаковые промежутки времени с помощью задания cron.

Поскольку я добавляю еще больше этих сценариев, называемых веб-страницами и написанных на PHP, я немного обеспокоен тем, что я могу начать «терять» некоторые из них по пути, когда все они запускаются вместе.

Поскольку «никто» на самом деле их не видит и не ожидает загрузки этих страниц (задержка в секундах не является проблемой), мне было интересно, какие настройки нужно посмотреть на apache2.conf, чтобы убедиться, что все эти вызовы страниц действительно обрабатываются. (даже с задержкой в несколько секунд) вместо того, чтобы Apache выбрасывал их, если он не может справиться с ними в течение определенного периода времени (в отличие от стандартных html/php-страниц, которые просматривает человек, просматривающий веб-сервер, это просто страницы, которые исполняют сценарии, которые никто не ждет).

Мое идеальное решение состоит в том, что они (страницы, вызываемые через cron) просто складываются и обрабатывают одну за другой до тех пор, пока не будет вызван следующий пакет, или в более тихий период, а не в apache, убивающем их, потому что они не выполнялись в определенный период времени.

Конечно, я понимаю, что если они ожидают выполнения в очереди больше времени, чем следующий пакет, то у меня есть проблема.

На той же ноте, как я могу посмотреть, что apache поставил в очередь или страницы, которые он обрабатывает?

Заранее спасибо.

1 ответ1

1

Я действительно не вижу необходимости использовать Apache в этом контексте, если у вас есть доступ к cron. Вам не нужно обслуживать страницы, очевидно, вам нужно только выполнить код.

Почему бы просто не попробовать что-то подобное?

#!/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 и вызовите php /path/to/script.php (или просто ./path/to/script.php если вы добавляете права на исполнение к файлу, используя chmod +x) в вашем crontab, должен выполнить эту работу и сэкономить вам много Apache.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .