Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Timeout при выолнении какой-либо функции / 16 сообщений из 16, страница 1 из 1
30.03.2005, 10:13
    #32987866
trustno1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Можно ли в PHP прекращать выполнение какой-либо функции\операции внутри скрипта, если она не выполнилась за определенное вермя?
например, если пинг компа не прошел в течение 3 секунд, то прекращать попытку...
...
Рейтинг: 0 / 0
30.03.2005, 17:47
    #32989478
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
2 4m@t!c, в PHP есть функция sleep?
...
Рейтинг: 0 / 0
30.03.2005, 17:56
    #32989501
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Да .
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
30.03.2005, 18:25
    #32989584
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
а вообще. Сильно расплывчатый вопрос... и зачем sleep?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
30.03.2005, 18:59
    #32989661
trustno1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Во-во, при чем здесь sleep ???
...
Рейтинг: 0 / 0
30.03.2005, 19:19
    #32989688
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$timeout =  10 ;
$step =  1 ;
$tmp =  0 ;
$ch = false;

while(!$ch){
  if($tmp != $timeout){
    sleep($step);
    $tmp = $tmp + $step;
  }else{
    $ch = true;
  }
}

ну и как там дальше дело техники (впрочем как и этот пример :)) )
------------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
30.03.2005, 19:28
    #32989699
trustno1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
[quot Fabrichenko Viktor]
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$timeout =  10 ;
$step =  1 ;
$tmp =  0 ;
$ch = false;

while(!$ch){
  if($tmp != $timeout){
    sleep($step);
    $tmp = $tmp + $step;
  }else{
    $ch = true;
  }
}

гм... не выйдет, если у меня функция ping выполняется около 30 секунд, а тайм-аут нужен в 5 сек. Она пока полностью не выполнится, не передаст управление на след. строчку кода...
...
Рейтинг: 0 / 0
30.03.2005, 19:36
    #32989713
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
а можно поток создать отдельный в ПХП и в нем запускать некий процесс и у этого процесса узнавать его состояние?

я просто именно на ПХП этим не занимался. Не знаю возможностей языка в этой области ...

-----------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
30.03.2005, 19:37
    #32989714
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
неверно понял смысл вопроса... sleep отпадает.
...
Рейтинг: 0 / 0
30.03.2005, 19:37
    #32989716
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
2Fabrichenko Viktor , токо хотел написать тоже самое :)
...
Рейтинг: 0 / 0
30.03.2005, 19:55
    #32989741
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Попробуй fork
вроде как сказали в перле такая конструкция порождает дочерний процесс в виде копии текущего но отличающегося 2мя системными переменными ...

Вообщем обрабатывать геморой но похоже что можно ... попробуй


--------------------------------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
30.03.2005, 20:09
    #32989757
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Я это и подозревал. что sleep тут непричем...
по идее помочь может system() .
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
30.03.2005, 20:19
    #32989767
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Глянь еще и exec()
онлайн Мана тем интересна, что там есть масса примеров в ноутах.. Просмотри их.. Может, там будет то, что нужно..
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
30.03.2005, 20:37
    #32989786
Fabrichenko Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
все равно надо мониторить процесс! если ты просто сделаешь while(true){} тогда сразу проц на 100% вот тут sleep и пригодится
---------------------------------------------
жизнь как пестня
...
Рейтинг: 0 / 0
31.03.2005, 11:42
    #32990500
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Если вопрос только для пинга - то пингу можно задать и кол-во попыток, и таймауты между попытками

"The CBO without stats is like a morning without coffee." T.Kyte
...
Рейтинг: 0 / 0
31.03.2005, 11:52
    #32990543
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Timeout при выолнении какой-либо функции
Код: plaintext
1.
2.
3.
4.
5.
my @ping=eval {
local $SIG{ALRM} = sub { die "Нет ответа" };
alarm( 3 );
return <FILEHANDLE>;
};
alarm( 0 );

это на Перле, может чем-нить поможет.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Timeout при выолнении какой-либо функции / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]