Запущенные процессы в фоновом режиме 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....