Основной курс по Joomla

Перезапуск скрипта и продолжение работы с последней точки выполнения

0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 466 Просмотров
*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
Всем добрый день, пишется автоматический парс цен с другого сайта, при выполнения скрипта вылезла проблема, которую и стоило ожидать: 500 ошибка хостинга из-за долгого выполнения скрипта.
Возникла необходимость написания скрипта или внедрение уже имеющихся. Скрипт должен останавливать скрипт парса через N время, и запускать скрипт парса заново с точки "остановки".
У кого есть какие мысли по этому поводу?

ну и часть кода парса:
model.php
Код: php

function GetIdProduct() {
//получение всех id товаров магазина
}

//работа по сверке массивов
function SendArrayIdProduct(){
// цикл по парсингу всех цен и запись их в бд
}
function Start(){
$w = $this->SendArrayIdProduct();
return $w;
}

*

dmitry_stas

  • Профи
  • ********
  • 9668
  • 931
AJAX спасет отца русской демократии :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций


*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
скрипт и так будет запускаться через крон в определенное время т.е никто не будет за ним "следить". как через AJAX можно это сделать. можете поподробней рассказать? была идея записи id последнего удачного запроса в БД. и при повторном запуске скрипта отталкиваться от данной строки..

*

dmitry_stas

  • Профи
  • ********
  • 9668
  • 931
Цитировать
была идея записи id последнего удачного запроса в БД. и при повторном запуске скрипта отталкиваться от данной строки..
как вариант. любое место хранения подойдет, в том числе файл.

Цитировать
скрипт и так будет запускаться через крон
так может тогда использовать CLI? там нет ограничения на время выполнения. или нет возможности такой?

Цитировать
как через AJAX можно это сделать
если крон, то AJAX не нужен
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
так может тогда использовать CLI? там нет ограничения на время выполнения. или нет возможности такой?
через CLI можно, но на моем тарифе у хостинга стоит опять-же ограничение на выполнение:
"- Запрещается использование процессами процессоров сервера более 60% в течение 5 секунд и более 10% в течение 25 секунд. В случае превышения данного лимита процесс завершается."

Скрипт уже почти написан, точки остановки, точки запуска, проверка последнего обновления все уже проверяется. но возник вопрос наверное в самой простой ситуации:
Код: php
file pars.php

func....//всевозможные проверки

function test(){
for($i = $arrayid; $i<count($prodid); $i++) {
//здесь идет цикл парсинга и записи в бд
//и через 25 секунд работы скрипта, он  - pars.php перезапускается
}
}
Заранее благодарю

*

dmitry_stas

  • Профи
  • ********
  • 9668
  • 931
если у вас вопрос исключительно "подождать какое то время, чтобы проц остыл", то может быть просто использовать sleep()?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

CaHeK_pk

  • Осваиваюсь на форуме
  • ***
  • 115
  • 2
если у вас вопрос исключительно "подождать какое то время, чтобы проц остыл", то может быть просто использовать sleep()?
Спасибо за идею, сегодня опробую:)