Запуск строненнего скрипта в cron
#1
Отправлено 19 Апрель 2016 - 13:54
Подскажите как правильно настроить запуск в cron стороннего скрипта , который к примеру формирует csv файл и качает картинки ?
#2
Отправлено 19 Апрель 2016 - 13:56
#3
Отправлено 19 Апрель 2016 - 15:49
alexols (19 Апрель 2016 - 13:56) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#4
Отправлено 19 Апрель 2016 - 15:52
пока не работает файлы есть.
#5
Отправлено 19 Апрель 2016 - 16:43
#6
Отправлено 19 Апрель 2016 - 17:00
import_data - это, видимо, встроенная в КБ функция, она в КРОНе работать не будет.
Скорее всего вам нужно использовать fgetcsv http://php.net/manua...ion.fgetcsv.php
#7
Отправлено 19 Апрель 2016 - 17:07
У меня вопрос системным ограничением времени выполнения, причем мне не постоянно надо у меня разовый импорт может занять некоторое время потом уже все быстро будет происходить.
Или есть еще какой то вариант запуска php скрипта не через cron ?
#8
Отправлено 19 Апрель 2016 - 17:08
#9
Отправлено 20 Апрель 2016 - 17:43
Второй скрипт качает картинки как там защитится от времени выполнения ?
#10
Отправлено 12 Май 2016 - 10:40
<?php // Задача: необходимо несколько раз в цикле произвести некое действие, при этом время выполнения скрипта может выйти за предел ограничения по времени. // задаем время начала и максимальное время выполнения $start_time = time(); $max_exec_time = ini_get("max_execution_time"); if ($max_exec_time > 180) $max_exec_time = 180; if ($max_exec_time < 30) $max_exec_time = 30; // достаем текущее значение переменной цикла из БД, для того что продолжить задачу с последнего места, если она была перезапущена // если же задача запущена первый раз, создаем запись в БД для последующего хранения $i = $config['my_var_i']; if ($i == 0) sql_insert(CONFIG_TABLE, array('name' => 'my_var_i', 'value' => $i)); // запускаем цикл, например на 300 итераций // если задача перезапущена, цикл продолжится с последней итерации while ($i < 300) { // для примера, просто выводим счетчик текущей итерации в лог задачи крон, каждую секунду // этот фрагмент необходимо заменить на свою задачу echo "$i\n"; sleep(1); $i++; // проверяем, не приблизилось ли время прерывания (на всякий случай задана фора 20 секунд) if (time() - $start_time > $max_exec_time - 20) { // если да - сохраняем переменную цикла в БД, задаем системную переменную для перезапуска задачи cron и выходим из цикла sql_update(CONFIG_TABLE, array('value' => $i), "name='my_var_i'"); $cron_restart = 1; break; } } // если все итерации были выполнены, удаляем переменную в БД if ($i == 300) sql_delete(CONFIG_TABLE, "name='my_var_i'");
Вот пример кода. В дальнейшем, он будет размещен в документации на нашем сайте.
#11
Отправлено 12 Май 2016 - 11:46
Спасибки !!!!
Здорово !!!!
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных