Имя: Пароль:
1C
 
Пауза в выполнении обработке на сервере. УТ 10.3
,
0 Vigor06
 
19.10.15
12:53
Доброго дня!
Возникла задача сделать паузу в выполнении обработки НА СЕРВЕРЕ, на ЛИНУКС-Сервер.
Соответственно отпадают все dll и тому подобное.
При этом не подходят всякие циклы до 1000000...000, так как задача,как раз,разгрузить сервер  в моменты выполнения регл.заданий.

Есть у кого мысли?

спасибо
1 asady
 
19.10.15
12:53
пинг
2 Cyberhawk
 
19.10.15
12:54
Расскажи, зачем пауза в алгоритме твоего регл. задани?
3 Cyberhawk
 
19.10.15
12:54
*задания
4 Vigor06
 
19.10.15
13:00
(2) по порядку:
регл задание считывает файлы,формируемые АТС, о входящих звонка и на их основании формирует документы "Событие". Задание выполняется сейчас раз в 5 сек.
Цепочка такая: Звонок- создание события в 1с- на основании события -задача- далее заказ-наряд

Соответственно такой частый запуск планового задания:
1. Вызывает накладные расходы на запуск процессов 1с
2. Засирает базу записями лога 17280 штук в сутки

Соответственно есть желание запускать обработку 1 раз в день,скажем,в 8 утра, и работать по след.алгоритму:

1.Запуск
2.Проверить файлы()
3. Спать5Секунд()
4. ПроверкаНеПолночьЛиИЕслиДаТоВыход()
5. Перейти на шаг 2
5 Провинциальный 1сник
 
19.10.15
13:01
(4) см. (1)
6 Vigor06
 
19.10.15
13:03
(5) нашел такое решение:

&НаКлиенте
Процедура ТаймаутСкрипта(Shell, ТаймаутВСекундах)

Shell.Run("ping 127.0.0.1 -n "+СокрЛП(Число(ТаймаутВСекундах)+1),0,1);

КонецПроцедуры// ТаймаутСкрипта()



&НаКлиенте
Процедура ТырымПырым(Команда)

Shell = Новый COMОбъект("WScript.Shell");

ТаймаутСкрипта(Shell, 10);
КонецПроцедуры


Но оно ж не заработает на линуксе?
7 mihmih
 
19.10.15
13:05
(6) Нет, на линуксе это, естесственно не заработает.
(5) Позвольте, господа! Сейчас глянул в правый нижний угол экрана - на дворе 2015-й год. Не ужели в платформе 8.2 ДО СИХ ПОР нет какой-либо языковой конструкции для паузы?
8 Cyberhawk
 
19.10.15
13:06
(7) нету
9 asady
 
19.10.15
13:07
10 torgm
 
19.10.15
13:07
(7) по факту тс пауза как бы и не нужна...
11 Поpyчик-4
 
19.10.15
13:14
(7)  Сейчас глянул в правый нижний угол экрана - 15:14. Про двор и 2015 год в углу ни слова.

А вообще вам нужна не пауза, а запуск задания в определённое время, которое настраивается в расписании.
12 Провинциальный 1сник
 
19.10.15
13:15
(7) ЗапуститьПриложение работает и в линуксе. Просто строчку команды иначе формируй, с линуксовыми ключами.
13 Провинциальный 1сник
 
19.10.15
13:16
(11) Оно у него есть, ТС не устраивают накладные расходы на запуск задания и мусор в логе.
14 Провинциальный 1сник
 
19.10.15
13:19
(12) И кстати в линуксе есть нативная команда sleep
15 Tateossian
 
19.10.15
13:19
ПодключитьОбработчикОжидания? И запускать каждые 5 сек.
16 Провинциальный 1сник
 
19.10.15
13:20
(15) На сервере не работает
17 Tateossian
 
19.10.15
13:22
(16) Точно, пасиб.
18 mihmih
 
19.10.15
13:24
(1) ЗапуститьПриложение("/bin/ping -c 1 -W 5 1.0.0.1");
(11) По условиям задачи необходимо проверять папку каждые 5 (ну максимум 10) секунд. Запуск регламентированного задания вызывает большие накладные расходы, и да, мусор в логах.

Логично было бы, чтоб события не складывались в текстовые файлы, а система-инициатор стучалась сразу в 1С... Но, к сожалению с этого конца более чем закрыта (кроме как через OLE не достучаться)