Что нового

2 Бесконечных цикла

w13

Новичок
Сообщения
20
Репутация
0
Всем привет.
Не погу сделать так, что бы получилось примерно следующее

1 цикл:
Проверка, сущевствует ли процесс, если да - ничего не делаем и переходим ко второму, если нет - Run(start.exe)
2 цикл:
Посылаем post-запросна check-lice.php
Все это нужно сделать так, что бы 1, скажем проверялся раз в 5 минут а второй раз в 10, и цикл был постоянным
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Сделайте вложенный цикл.
 
Автор
W

w13

Новичок
Сообщения
20
Репутация
0
Пробовал:

Код:
AdlibRegister('start', 1)
AdlibRegister('post', 100)

While 1
    Sleep(100)
WEnd

Func start()
$ProcName = "soft.exe"
Do
        Sleep(100)
    Until Not ProcessExists($ProcName)
	Run($ProcName)
EndFunc

Func post()
$lice= DriveGetSerial(StringLeft(@ScriptDir, 2))
$oRequest = ObjCreate('WinHttp.WinHttpRequest.5.1')

$oRequest.Open('POST', 'http://site.ru/check-lice.php', 0)
$oRequest.SetRequestHeader('User-Agent', 'mysoft')
$oRequest.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oRequest.Send('lice=' & $lice)
$sData = $oRequest.ResponseText

$oErrorHandler = 0
    $nBytesRead = @extended
    Sleep(1000)
EndFunc

Но второй цикл не работает, скрипт лишь проверяет запущен ли ProcName, проверка лицензии не идет.
Помогите поправить, пожалуйста.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Adlib-функция должна оставаться предельно простой, поскольку вызывается часто (а работа основного скрипта приостанавливается). Также, параметр time должен быть выбран внимательно, что бы избежать высокой загрузки процессора (ЦП).
Вы вызываете первую функцию каждую милисекунду, а вторую каждые 100 мс. При этом у вас они выполняются намного дольше. По этому ничего и не работает.
Код:
AdlibRegister('start', 5*60*1000) ; Вызов раз в пять минут
AdlibRegister('post', 10*60*1000) ; Вызов раз в десять минут

И уберите из этих функций все циклы и задержки.
А вот в основном цикле задержку можно смело ставить и на секунду, и на десять.
 
Автор
W

w13

Новичок
Сообщения
20
Репутация
0
edyapd, все заработало, спасибо.
 
Верх