![]() |
![]() |
![]() |
|
v8: Как организовать паузу на сервере под линухом? - решено | ☑ | ||
---|---|---|---|---|
0
mikecool
07.06.11
✎
09:28
|
Сабж
Ситуация - формируется файл, потом должен упаковаться. Не успевает записаться файл к тому моменту, когда запускается упаковка. Пока придумал Пока 1=1 Цикл Если Файл.Существует() Тогда Упаковать Прервать Конецесли; Конеццикла + отслеживать отказ в случае ошибки сохранения Может есть что проще |
|||
1
aleks-id
07.06.11
✎
09:31
|
можно обработчик ожидания прикрутить и уже в нем проверять - есть ли файл. если файл есть - отключаем обработчик ожидания и упаковываем файл.
|
|||
2
Axel2009
07.06.11
✎
09:33
|
в 1ске придумали задержка = текущаядата()+5 и цикл пока текущаядата < задержки....
|
|||
3
Asmody
07.06.11
✎
09:34
|
потом будет ветка от автора типа v8: 1C-ка хавает ЦП
|
|||
4
mikecool
07.06.11
✎
09:48
|
(3) я знаю про (2), и соответственно про v8: 1C-ка хавает ЦП ))
(1) обработка ожидания на сервере не доступна, или у меня аривой сп? |
|||
5
mikecool
07.06.11
✎
09:48
|
кривой*
|
|||
6
mikecool
07.06.11
✎
09:49
|
(3) мой цикл тоже не айс, но он хоть ничего не вычисляет...
но - проверка существования файла тоже может быть затратна |
|||
7
Axel2009
07.06.11
✎
10:13
|
(6) а если ось отфутболит создание по правам? вечный цикл?
|
|||
8
mikecool
07.06.11
✎
10:16
|
(7) это регламент, выполняться не более 10 минут поставлю, к примеру
это во первых да и вроде как во временной папке не должно футболиться и в последних, если попробовать Попытка Файл.Записать() Исключение Отказ = Истина и потом уже Если не Отказ и далее по тексту |
|||
9
aleks-id
07.06.11
✎
10:17
|
поищи в командах никсов - не верю, что там нет возможности дождаться выполнения программы...
|
|||
10
Fragster
гуру
07.06.11
✎
10:17
|
(0) HTTPСоединение, вызывающее скрипт, который делает паузу
|
|||
11
Fragster
гуру
07.06.11
✎
10:18
|
(9) на сервере нет КомандаСистемы и ЗапуститьПриложение, а HTTPСоединение есть.
|
|||
12
mikecool
07.06.11
✎
10:18
|
(10) омг )) я так не умею
|
|||
13
Fragster
гуру
07.06.11
✎
10:20
|
(12) в следствии (11), по другому - никак, ибо цикл - не вариант
|
|||
14
mikecool
07.06.11
✎
10:21
|
(13) должен быть хтмл код, который организует паузу?
|
|||
15
Fragster
гуру
07.06.11
✎
10:23
|
(14) зачем? может быть скрипт на любом интерпретируемом языке, программа и прочее. на никсах веб сервер поднимается за 5 минут с поддержкой cgi, в %wwwroot%/cgi-bin/ кидается скриптик, умеющий паузу, и он вызывается через localhost/cgi-bin/pause.sh
|
|||
16
Fragster
гуру
07.06.11
✎
10:24
|
или поднимается сервак с поддержко
|
|||
17
Fragster
гуру
07.06.11
✎
10:25
|
... php, в %wwwroot% кидается pause.php примерно такого содержимого:
<?php sleep($_GET['ms']); echo 'done'; ?> и вызывается как http://localhost/pause.php?ms=1000 |
|||
18
Fragster
гуру
07.06.11
✎
10:26
|
ух, как растаращило
|
|||
19
mikecool
07.06.11
✎
10:27
|
(18) вротмненоги
|
|||
20
Axel2009
07.06.11
✎
10:35
|
||||
21
Fragster
гуру
07.06.11
✎
10:36
|
(20) ага, ком объект на сервере под линуксом...
|
|||
22
Axel2009
07.06.11
✎
10:36
|
ой емае.. линух.. сори =)
|
|||
23
mikecool
07.06.11
✎
10:42
|
а просто BODY.pause() в html не прохляет?
стырено с http://forums.techarena.in/software-development/1229206.htm |
|||
24
aleks-id
07.06.11
✎
10:49
|
(11) я знаю что нет. я из этого вышел под виндами так:
Процедура ВыполнитьКомандуСистемы(Команда) Экспорт ScrptCtrl=Новый COMОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function ExecSys() |Dim oWsh |Dim sResult | |Set oWsh = CreateObject(""Wscript.Shell"") |sResult = oWsh.Run(""" + Команда + """, 1, True) | |End Function |"); Результат = ScrptCtrl.Run("ExecSys"); КонецПроцедуры |
|||
25
mikecool
07.06.11
✎
10:50
|
(24) под виндами я пользую
scr = Новый COMОбъект("WScript.Shell"); scr.Run("ping 127.0.0.1 -n " + КоличествоСекунд, 0, 1); |
|||
26
aleks-id
07.06.11
✎
10:54
|
(25) а я запускаю этой командой архивацию, и она сама ждет когда отработает ;)
|
|||
27
Fragster
гуру
07.06.11
✎
10:55
|
(23) не проканает
|
|||
28
mikecool
07.06.11
✎
11:24
|
(10) "HTTPСоединение, вызывающее скрипт" какой метод у HTTPСоединение вызывает скрипт?
|
|||
29
mikecool
07.06.11
✎
11:25
|
+28 через ОтправитьДляОбработки?
|
|||
30
Fragster
гуру
07.06.11
✎
11:29
|
например Получить
|
|||
31
mikecool
07.06.11
✎
11:30
|
(30) про Получить подумал, ему тогда надо какое то имя файла дать....
|
|||
32
mikecool
07.06.11
✎
11:32
|
а сервер 1с с пхп никак не связан? если щас поднять пхп - не потрется чего в модулях сервера 1с?
|
|||
33
Fragster
гуру
07.06.11
✎
11:39
|
не, норм будет
|
|||
34
mikecool
07.06.11
✎
11:40
|
HTTP.Получить("http://localhost/pause.php?ms=" + КоличествоСекунд * 1000 + """ target=""_blank"" ref=""nofollow"" class=""extralink"">http://localhost/pause.php?ms=" + КоличествоСекунд * 1000, ПолучитьИмяВременногоФайла());
я с запятыми не напутался? |
|||
35
Fragster
гуру
07.06.11
✎
11:40
|
Формат(КоличествоСекунд * 1000, "ЧГ=")
|
|||
36
mikecool
07.06.11
✎
11:41
|
(35) а, точняк, спс
|
|||
37
Fragster
гуру
07.06.11
✎
11:41
|
ну и ссылку-то по нормальному вставь:
"http://localhost/pause.php?ms=" |
|||
38
Fragster
гуру
07.06.11
✎
11:41
|
остальное - косяк мистовского движка
|
|||
39
Fragster
гуру
07.06.11
✎
11:41
|
главное - в браузере на сервере проверь
|
|||
40
mikecool
07.06.11
✎
11:42
|
(39) ок, спс
|
|||
41
mikecool
07.06.11
✎
11:43
|
щас поднимется пхп и проверю )
|
|||
42
mikecool
07.06.11
✎
14:12
|
все, решилось
результат опубликовал в Книга знаний: Перепроведение документов в 1С:Предприятие без блокировки других пользователей Fragster - еще раз спасибо |
|||
43
Fragster
гуру
07.06.11
✎
14:14
|
(42) забыл временный файл удалить
|
|||
44
Fragster
гуру
07.06.11
✎
14:14
|
ну и в пинге - количество секунд + 1
|
|||
45
Fragster
гуру
07.06.11
✎
14:15
|
а на сервере - слип в миллисекунды надо преобразовать (на 1000 умножить)
|
|||
46
mikecool
07.06.11
✎
14:15
|
(43) блин ))
|
|||
47
mikecool
07.06.11
✎
14:15
|
(44) зачем? вот этого я не понял, честно
|
|||
48
mikecool
07.06.11
✎
14:15
|
(45) хз, проверили у нас - слип принимает секунды
|
|||
49
mikecool
07.06.11
✎
14:16
|
+48 т.е. sleep(5) отрабатывает 5 секунд
|
|||
50
mikecool
07.06.11
✎
14:17
|
+49 возможно реализация пхп другая
|
|||
51
Fragster
гуру
07.06.11
✎
14:18
|
(47) чтобы слал на 1 пакет больше (ибо если 1 пакет, то он сразу примется и вернется, а 2 - один примется, секунда пауза, второй примется и вернется)
|
|||
52
mikecool
07.06.11
✎
14:20
|
(51) понял, поправлюсь
поправил статью |
|||
53
Fragster
гуру
07.06.11
✎
14:21
|
(52) забыл удаление файла вставить :)
|
|||
54
Fragster
гуру
07.06.11
✎
14:23
|
кстати, в мануале сказано, что секунды, так что отбой :)
|
|||
55
mikecool
07.06.11
✎
14:24
|
поправил статью ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |