Расписание тысяч задач [PHP сценариев] на сервере - PullRequest
0 голосов
/ 19 апреля 2020

Допустим, веб-сайт должен отображать обновленный контент каждые 5 минут. Конечно, мы можем использовать задание cron для планирования сценария PHP, например

$weather = file_get_contents("https://weather.com/country/state/city/day/hour/minute.json");
$upload_to_database = send_data_to_db();

Допустим, этот простой сценарий берет данные и отправляет их в MYSQL, а затем данные отображаются во внешнем интерфейсе. выбирая данные с помощью AJAX каждые несколько минут или, возможно, отправляя уведомления после анализа данных и т. д. ...

Теперь, что если у нас тысячи городов. Как я могу автоматически создавать задания cron для этих городов?

Надеюсь, вы поняли мой вопрос.

Другим примером может служить трекер SERP Rank для тысяч ключевых слов и так далее ...

1 Ответ

2 голосов
/ 20 апреля 2020

Вместо создания множества отдельных заданий cron, каждое из которых выполняет одно задание получения / обновления, просто создайте одно общее задание c cron, которое выполняет все задание поиска / обновления.

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

Например, вместо запуска "php updatecity. php Washington" (в качестве примера того, как вы запускаете скрипт php, который обновляет определенный город), запустите:

nohup php updatecity.php "$city" > /dev/null 2>&1 &

Это запустит отдельный процесс php в фоновом режиме, запустив ваш updatecity.php сценарий с параметром $city в качестве аргумента.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...