Эффективность скрипта PHP Cron с использованием CURL для загрузки файлов - PullRequest
1 голос
/ 17 октября 2010

Я извлекаю результаты поисковых запросов, используя CURL, а затем перебираю базу данных, чтобы загрузить дополнительные запросы, а затем сохраняю результаты в базе данных.Я сталкиваюсь с неприятностями с максимальным временем php и попытался установить максимальную переменную времени на большее значение, которое, я думаю, не работает на моем хосте, используя это:

ini_set('max_execution_time', 600);

в файле, который запускается cron, так чтоизменяет только максимальное время процесса импорта.

Вопрос в том, будет ли эффективнее сохранять результат каждого соединения CURL в базе данных, а затем иметь вторичную функцию, которая извлекает результаты базы данных и сортирует их всоответствующие таблицы и запускать вторичную функцию каждые 10 минут гипотетически ИЛИ более эффективно вытащить файл и вставить отсортированные записи за один раз ??

1 Ответ

0 голосов
/ 18 октября 2010

Вы всегда можете узнать, позволяет ли ваш хост изменять функцию ini_set, используя ini_get('max_execution_time') сразу после вызова ini_set().

Вместо того, чтобы сохранять результаты в базе данных, я бы поместил их в каталог.Назовите файлы с помощью функции microtime(true) (которая позволяет легко извлечь наиболее или наименее недавно написанный файл).Затем создайте отдельный сценарий, который проверяет наличие файлов в каталоге и, если да, обрабатывает один из них.Сценарии должны выполняться с интервалом в 1 минуту.

Я отмечу, что при обработке файла возможны условия гонки, если это занимает более одной минуты, однако, даже если это занимает более одной минуты, это вряд ли когда-либо произойдет.

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