26.06.2008 10:44
akonev
 
Цитата:
Mihon Ага. Умеем. Но это не есть правильно. Все равно что делать стоп/старт базы. Ну не для этого случая. Вот.
Не согласен. Совсем не то же самое. Абсолютно безболезненная операция, никак не влияющая на работу остальных кусков СМ и операторов.
И в то же время - самый простой способ инициировать немедленную выгрузку.
Так что зря упираешься, честное слово.

А в базе никаких флажков нет.
Получается, что или перестартовывать КМ или рисовать прикладуху, чтобы она кнопку жала или делать операм mmc консольку, где они смогут эту кнопку руками нажать.

Или как Vovantus делал: оператор жмет ярлычек, по нему отрабатывается скриптик, который выкладывает файл-флаг.
Некая софтина видит этот флаг и все-таки перестартовывает сервис.
26.06.2008 10:54
Mihon
 
Цитата:
Andrew_Konev Не согласен. Совсем не то же самое. Абсолютно безболезненная операция, никак не влияющая на работу остальных кусков СМ и операторов.
И в то же время - самый простой способ инициировать немедленную выгрузку.
Так что зря упираешься, честное слово.

А в базе никаких флажков нет.
Получается, что или перестартовывать КМ или рисовать прикладуху, чтобы она кнопку жала или делать операм mmc консольку, где они смогут эту кнопку руками нажать.

Или как Vovantus делал: оператор жмет ярлычек, по нему отрабатывается скриптик, который выкладывает файл-флаг.
Некая софтина видит этот флаг и все-таки перестартовывает сервис.
Перестартовывание мне не нравится, потому что службы иногда виснит - service_start_pendig или service_stop_pendig.
Перед перестартовыванием надо расписание менять, или КМ и так выгрузку делать будет? немножко непонятно...
Вдруг, поставив расписание так, чтобы выгрузилось через минуту, пререстартовав сервис, он долго запускаться будет и к моменту как он прочитает расписание время уже пройдет. Тогда обомаемся?
26.06.2008 11:11
Vovantus
 
Цитата:
Mihon Перестартовывание мне не нравится, потому что службы иногда виснит - service_start_pendig или service_stop_pendig.
Есть такая фигня, подвисает иногда, редко правда Но и из этой ситуации можно выкрутиться. Тут на форуме уже кто-то задавал вопрос про то, как посмотреть статус запущенной службы. Ну так вот, останавливаем службу, а после того как команды выполнена (возможно сервис КМ не остановился), зацикливаем проверку статуса службы и в нём посылаем нужную команду КС до усрачки, пока он не отработает как нужно :) Можно пойти дальше и после определённого количества циклов тупо грохать подвисшую службу КС.
26.06.2008 11:24
akonev
 
Цитата:
Mihon Вдруг, поставив расписание так, чтобы выгрузилось через минуту, пререстартовав сервис, он долго запускаться будет и к моменту как он прочитает расписание время уже пройдет. Тогда обомаемся?
Поставь выгрузку по интервалу (неважно какому), время начала выгрузок и конца выгрузок. Этого достаточно. Расписание править не придется. При запуске КМ в рамках начало-конец пойдет выгрузка.
Когда будет нужна принудительная полная - тогда поправишь флажки на кассах, как Kadr писал.
26.06.2008 13:53
Mihon
 
Цитата:
Andrew_Konev Поставь выгрузку по интервалу (неважно какому), время начала выгрузок и конца выгрузок. Этого достаточно. Расписание править не придется. При запуске КМ в рамках начало-конец пойдет выгрузка.
Когда будет нужна принудительная полная - тогда поправишь флажки на кассах, как Kadr писал.
т.е. когда КМ стартует он ВСЕГДА будет делать выгрузку (сразу же), я правильно понимаю?
27.06.2008 05:35
Vovantus
 
Цитата:
Mihon т.е. когда КМ стартует он ВСЕГДА будет делать выгрузку (сразу же), я правильно понимаю?
На нашей версии СМ, КС ещё болеет болезнью, при которой выгрузка происходит следующим образом. Условно, расписание выгрузки с 12.00-13.00 с интервалом в 5 минут. Первая выгрузка происходит в 12.00. Условно, данные выгружаются за 1 минуту. Далее, если следовать расписанию, следующая выгрузка должна быть в 12.05. Но по факту она будет в 12.06, т.е. со смещением в одну минуту. Эту болезнь кажется вылечили ещё в версии 1.024.5 (возможно раньше). Т.е выгрузка идёт строго по расписанию, не смещаясь по времени.
Так или иначе, но данные из КС будут выгружаться исходя из расписания выгрузки. Т.е., если привязаться к расписанию выгрузки, которое я указал выше, то получаем следующую схему. Условно, в 12.00 началась выгрузка. Данные выгрузились за 1 минуту. После этого кассовый сервер остановили. Если его запустить в 12.03, то выгрузки не будет. А если его запустить, например, в 12.07, то сразу начнётся выгрузка. На этой системе у меня посроена выгрузка по требованию. Расписание ПОЛНОЙ выгрузки 8.00-20.00 с интервалом 3 мин. Появился флаг запроса выгрузки - КС останавливается, меняется значение в реестре, которое переводит кассовый сервер только на ПЕРЕДАЧУ данных, далее КС запускается и начинается выгрузка. Данные выгрузились, по завершению кассовый сервер останавливается, в реестре меняется значение, которое переводит КС только на ПРИЁМ данных, далее КС запускается и начинается приём з-отчётов (если они есть) и оперативных чеков. Эта несложная система позволяет делать выгрузку только тогда, когда это требуется.

плюсы:
- с сервера снята лишняя нагрузка, которая возникает при каждой выгрузке данных по расписанию.
- экономия трафика за счёт пропуска "пустых" выгрузок.
- простои касс в магазинах при принятии данных от КС.

минусы:
- оператор может забыть выгрузить данные на кассу.
- следовательно нужно приложить немало усилий, чтобы у операторов выработался условный рефлекс: зделал изменения - нажал выгрузить!
- сложность при написании скриптов, сопровождающих такую систему выгрузки.
27.06.2008 09:23
kadr
 
Цитата:
Vovantus ... КС останавливается, меняется значение в реестре, которое переводит кассовый сервер только на ПЕРЕДАЧУ данных, далее КС запускается и начинается выгрузка. Данные выгрузились, по завершению кассовый сервер останавливается, ....
кто и как определят что данные выгрузились и нужно перезапустить КМ на приём?
27.06.2008 09:55
Vovantus
 
Цитата:
kadr кто и как определят что данные выгрузились и нужно перезапустить КМ на приём?
У меня выгрузка делается прямиком в локальные папки на сервере. Сервис nnCron отслеживает появление файла cash00x.db, предназначенного для последней кассы в списке выгрузки. При его создании запускается скрипт, который перезагружает КМ. Есть ещё вариант. Через nnCron отслеживать насколько активен КМ по отношению к процессорному времени. Если загрузка CPU сервисом КМ равна нулю, значит он отработал и его можно перезапускать.
27.06.2008 11:00
kadr
 
Цитата:
Vovantus У меня выгрузка делается прямиком в локальные папки на сервере. Сервис nnCron отслеживает появление файла cash00x.db, предназначенного для последней кассы в списке выгрузки. При его создании запускается скрипт, который перезагружает КМ. ...
Так и думал, только иногда кассовый стреляется если по каким-то причинам файлы в каталоге касс заблокированы и не всегда доходит до конца списка касс.
27.06.2008 14:02
Mihon
 
Схема интересная, но это нужно много писать и на каждый магазин уйдет ой как много времени.
И где-нибудь обязательно появится проблемка, сомневаюсь что вся эта штука работает стабильней чем сам КМ.

Вернусь к своему вопросу, уточню его еще.
распис. выгрузки с 08.00 до 23.00 инт 20 мин.
КМ запустился в 05.00 после бэкапа и работает, все выгружает.
1 вариант: В 08.30 его останавливаем и включаем в 08.35. Начнется выгрузка?
2 вариант: В 08.15 его останавливаем и включаем в 08.30. Начнется выгрузка?
Часовой пояс GMT +3, время: 20:29.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.