Запущенные процессы в фоновом режиме php
У меня есть несколько cronjob, которые суммируют данные и проверяют данные для моего сайта. Некоторые из них имеют процессы, которые должны выполняться в фоновом режиме.
Пример:
cronjob1.php execute cronjob2.php using exec
Этот cronjob2.php запускает другой cronjob3.php с помощью exec
, а cronjob3 должен быть завершен, затем cronjob2, а затем завершен cronjob.
В настоящее время у меня проблема, когда cronjob1.php занимает 2 часа.
Есть ли лучший способ запустить это, чтобы он работал быстрее?
Спасибо
Ответы
Ответ 1
Есть несколько вещей, которые вы можете сделать:
- убедитесь, что ваш script использует постоянное соединение, таким образом вы не потеряете время подключения и отключения от сервера базы данных.
- реализует механизм ведения журнала, поэтому вы можете определить, какая часть script выполняется медленно, регистрация времени, затраченного на каждое обращение к базе данных, будет хорошей идеей.
- попытайтесь максимально оптимизировать вашу базу данных, вы должны использовать объяснение медленных запросов и создать необходимые индексы.
Ответ 2
если cronjob1 имеет много операций с базой данных, чем создание процедур хранилища для этого и делает индексацию для большинства полей таблицы использования
это увеличит вашу производительность cronjob....