Запуск строненнего скрипта в 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 анонимных













