Имя: Пароль:
1C
 
Таймаут на выполнение кода
0 kuznecovii
 
13.08.10
08:53
Подскажите если возможность сделать таймаут на сервере... Т.е. у меня в модуле есть функция которая выполняется на стороне сервера:

#Если Сервер Тогда
Функция Имя() Экспорт
....
КонецФункции
#КонецЕсли

У меня через ADO идет подключение к FireBird/// Все работает нормально лишнего нет .... Но бывает что пытаюсь получить данные с файера и обработка весит и все не могу ничего сделать , как прервать выполнения этой функции или выставить ей таймаут ????
1 пента
 
13.08.10
08:55
см. фоновые задания
2 hulio_ekb
 
13.08.10
09:07
Можно. Пример процедуры, выполняющей паузу:


Процедура ВыполнитьПаузу(чСекунд) Экспорт
   
   Если чСекунд = 0 Тогда
       Возврат;
   КонецЕсли;
   
   cmdLine= "ping -n 1 -w " + Формат(1000*чСекунд, "ЧГ=0")+" 192.0.0.1";
   
   WshShell = Новый COMОбъект("WScript.Shell");
   
   WshShell.Run(cmdLine, 0, -1);

КонецПроцедуры
3 Ковычки
 
13.08.10
09:10
(2) это чо ?
4 SOleg
 
13.08.10
09:17
Процедура Таймаут(ЧислоСекунд)
   НачВремя = ТекущаяДата();
   Пока 1 = 1 Цикл
       Если ТекущаяДата() - НачДата > ЧислоСекунд Тогда
           Прервать;
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры

Примерно так, например.
5 SOleg
 
13.08.10
09:18
Сорри, в (4) " - НачВремя"
6 Alpinist22
 
13.08.10
09:24
(4) оригинально...
7 Ковычки
 
13.08.10
09:40
(4) зашибись, а где код процедуры ?
8 SOleg
 
13.08.10
09:42
Какой процедуры?
9 hulio_ekb
 
13.08.10
09:50
(3) Это вызывается команда "ping" - компьютер пингуется указанное количество секунд, а 1С в это время ждемт, пока команда выполнится.

(4) Такой подход не очень хорош. Цикл завешивает процессор
10 Ковычки
 
13.08.10
09:54
(9) а это тут причем ?
(8) куда код вставить который прервать надо ?
11 SOleg
 
13.08.10
09:55
(9) Конечно, зато чисто на 1С.
12 Ковычки
 
13.08.10
09:56
пейсатели
13 hulio_ekb
 
13.08.10
10:00
(10) Ну как при чем? Чем тебе не пауза? Вызываем системную команду "ping" и ждем ее выполнения. Затем продолжаем выполнение кода 1С

(11) Это еще не показатель правильности/качественности кода :P

(12) Вы о чем вообще? Вам уже несколько вариантов предложили и аргументировали каждый из них. Пользуйтесь любым.
14 Ковычки
 
13.08.10
10:01
(13) ты сабж читал ?
15 SOleg
 
13.08.10
10:01
(12) Насколько я понял, код не надо прерывать. Нужно просто подождать, пока установится соединение, чтобы дальнейшее не выполнялось, пока соединение не установлено. Целесообразность подобного таймаута - вопрос другой, я просто предложил вариант, не лучший, но работающий.
16 Ковычки
 
13.08.10
10:02
+ мене ваши варианты побоку, автору помогите
а пауз я те настрагаю, у тебе самая большая конфигурация меньше будет в коде
17 Ковычки
 
13.08.10
10:03
(15)
"как прервать выполнения этой функции или выставить ей таймаут"
18 SOleg
 
13.08.10
10:03
Ну, и помоги сам, чего пальцы-то гнуть?
19 Ковычки
 
13.08.10
10:04
(18) кто пальцы гнет ?
я восьмерку тока на картинке видел, в (1) вроде чел ответил немного
а пейсатели не читатели
20 1C-Nick
 
13.08.10
10:20
21 Ковычки
 
13.08.10
10:22
(20) еще один пейсатель ?
22 1C-Nick
 
13.08.10
10:25
(21) это по поводу паузы о которой речь,
а для того чтобы таймаут ставить кроме регламентных заданий ничего на ум не приходит
23 kuznecovii
 
13.08.10
10:35
Понимаете мне пауза в цикле не надо ... Проблема в том что когда я вызываю метод
Execute(); Он задумывается и не отваливается...А хочется чтобы ожидание возврата функции закрылась..
24 1C-Nick
 
13.08.10
10:37
(23) у ADODB.Connection есть параметр CommandTimeout, не подойдет?
25 luns
 
13.08.10
10:38
(23) думается что пауза тебя не спасет. проблема в ином.ю
26 ДенисЧ
 
13.08.10
10:38
А что, в АДО таймауты соединения и выполнения уже запрещены? Куды котицо?
27 kuznecovii
 
13.08.10
10:49
(24) Вот это уже что то похожее на правду , МСДН смотрел тока про рекордсет ... Позже сообщю результат
28 Ковычки
 
13.08.10
10:59
(27) а чего сразу про екзекуту не рассказал ?
29 Ковычки
 
13.08.10
10:59
хотя пля туплю так же... в сабже про адо есть )))
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший