Правильно ли задание cron для работы со сценариями, которые превышают max_execution_time? - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно импортировать много продуктов в Prestashop, используя XML из внешнего API. Наш виртуальный хостинг имеет Max_Execution_Time, установленный на 300 с. Проблема в том, что добавление изображений к продуктам в Prestashop занимает очень много времени, а 300 секунд недостаточно, чтобы добавить все продукты с изображениями за один раз.

Я планирую разобраться с этим, чтобы создать задание cron, которое будет вызывать скрипт каждые 10 минут или около того и позволять скрипту работать в течение ограниченного времени.

Является ли мой подход правильным или есть другой, лучший стандарт для этого?

Я не мог найти ответ на мою проблему в другом месте.

1 Ответ

0 голосов
/ 11 ноября 2018

Одним из решений является выполнение сценария с php консоли, чтобы пропустить директиву max_execution_time или max_input_time.

Вот пример запуска cron каждые 5 минут:
*/5 * * * * /usr/local/bin/php /path_of_the_script/my_script.php

Если время не истекло, просто отредактируйте скрипт и добавьте его в начало файла:
#!/usr/local/bin/php

В результате получается что-то вроде этого:

#!/usr/local/bin/php
<?php

// Your script code here...

PD. Это зависит от сервера, и мой путь, используемый для php, является наиболее распространенным, но есть вероятность, что он другой, если у вас есть сомнения, вам придется проверить с вашим хостинг-провайдером.

...