ФИНАНСЫ БЕЗ ПРОБЛЕМ(tm):
ПЕРЕГОВОРНЫЙ ПУНКТ II

Добро пожаловать, Гость. Пожалуйста, выберите:
Вход || Регистрация.
16.12.17 в 14:54:28


Наш сайт | Cтаpый форум (до 08.2003 года) | Интернет-магазин & Центр загрузок |
Главная | Помощь | Поиск | Участники | Вход | Регистрация
Модифицированный Клиент CLW32:
Из документации ...
На форуме...

Использование Клиента FCM:
1. Отчетный период и журнал операций.
2. Печать.
3. Экспорт.
4. Многострочная операция.
5. Редактирование многострочных операций.
http://www.fwp-client.com

Работа с ФБП через браузер:
Настройка для лечебных учреждений, оказывающих медицинские услуги:
На форуме...
http://vasoft.ru

Технический аудит настройки.
[Читать]

ФИНАНСЫ БЕЗ ПРОБЛЕМ (сетевая) и Opencart:
предлагаем:
1. Выгрузка новых покупателей из интернет-магазина в план счетов и сохранение информации в extrd.dat.
2. Выгрузка данных о заказанном товаре и сохранение в ФБП в журнале операций, номер заказа регистрируем в плане счетов как с.счет.
3. Українська локалізація.






   Финансы без пpоблем: Пеpеговоpный Пункт II
   Готовые pешения, ФБП и законодательство

   Ожидание файла и продолжение выполнения формы
« Предыдущая Тема | Следующая Тема »
Страниц: 1 2  Ответить | Уведомлять | Послать Тему | Печатать
   Автор  Тема: Ожидание файла и продолжение выполнения формы  (Прочитано 1094 раз)
box_vma

*



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 43
Ожидание файла и продолжение выполнения формы
« В: 20.07.17 в 21:20:54 »
Цитировать | Править

Добрый вечер!
 
Ни у кого не возникало необходимости в ходе выполнения формы проверить наличия файла, подождать если его нет, и затем продолжить?
 
У меня сейчас возникла такая необходимость. Написал такую функцию:
 
:kkm_wa (uc)     ожидаем ответ
fa=[dir 0]+'kkm\box\'+uc+'.ans'
bt=[sf 0,99];  bt=[cp bt,[length bt]-1,2]; bt=[vl bt]
 
while [fe fa]=-1
  et=[sf 0,99];  et=[cp et,[length et]-1,2]; et=[vl et]; if et<bt et=et+60; endif
  if et-bt>=5 return (-1); endif
endwhile
return (1)
 
 
По замыслу проверяет наличие файла в течение 5 секунд, затем возвращает 1 (файл есть), либо -1 (файл нет). Другого решения для таймера придумать не смог. Вроде все работает, но не нравится. Файл "давно уже есть", а форма все еще выполняется.  
Прошу поделиться опытом, если кто-нибудь таковой имеет.
 
Спасибо, с уважением
Владимир
 
Зарегистрирован
Vladimir

***



Я люблю этот Форум!

   
Просмотреть Профиль | WWW |

Сообщений: 231
Re: Ожидание файла и продолжение выполнения формы
« Ответить #1 В: 21.07.17 в 18:48:39 »
Цитировать | Править

on 20.07.17 в 21:20:54, box_vma wrote:
Файл "давно уже есть", а форма все еще выполняется.  

 
 
Первое, что приходит в голову - воспользоваться директивой AUTO.
 
То есть сократить время ожидания по таймеру до минимального. Если за это время файл не появился, то директива AUTO запустит отчетную форму снова. Этим вы сделаете перерыв в работе отчетной формы и дадите возможеность серверу обработвть поступившие за это время запросы и потом опять вернуться к ожиданию появления ужного файла.
 
Вариант. 2 ОФ работают в связке. Одна ждет файл (и перезпускается по AUTO), и если файл обнаружен, то запускает другую ОФ тоже по AUTO.
 
Ни чего подобного я сам не делал, любопытно будет узнать о результате.
« Изменён в : 21.07.17 в 18:49:48 пользователем: Vladimir » Зарегистрирован

С уважением,
Владимир
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #2 В: 21.07.17 в 20:48:29 »
Цитировать | Править

on 20.07.17 в 21:20:54, box_vma wrote:
Добрый вечер!
 
Ни у кого не возникало необходимости в ходе выполнения формы проверить наличия файла, подождать если его нет, и затем продолжить?

 
Конечно, возникала. Вот фрагмент формы с аналогичной задачей.
-------------------------------------------------------------
* проверим наличие соответствущего каталога
* проверим наличие соответствущего каталога
* проверим наличие соответствущего каталога
    if [ged [user]+'*Clw32_exe_CurrentVersion*']>=20131028
DI=[fe PQ+'README.TXT']
*DI:^^^^^^^DI^^^^^^^^^^^^^
if DI=-1
DI='F:'+PQ+'README.TXT|Это тестовый файл-флаг наличия директории, его не нужно удалять, а если удалять, то, тогда, со всей директорией.'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^DI
    Маленькая техническая остановка.
    Автоматически создан требуемый каталог:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^PQ
*N:UPDATE_FORMS:HI-ROVBP
DI='N:UPDATE_FORMS:'+NF+'"5'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^DI
*N:UPDATE_FORMS:^^^^^^^^^^^NF
    Форма сейчас будет обновлена автоматически через 5 секунд.
stop
endif
    endif
* проверим наличие соответствущего каталога
* проверим наличие соответствущего каталога
* проверим наличие соответствущего каталога
-------------------------------------------------------------
Т.к. у вас ожидается файл с расширением ANS, и вероятно имеет отношение к работе самого сервера, то может расскАжите подробнее свою задачу.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 102
Re: Ожидание файла и продолжение выполнения формы
« Ответить #3 В: 23.07.17 в 14:55:24 »
Цитировать | Править

Ещё один пример (с отладочными вставками внутри)

EZ=[SF 0,99]
FL=[DIR 0]+'somefile'  
*IF [FE FL]>-1 DELETEFILE FL;ENDIF .*отладочная стр.[X]
BT=[SF 0,99]
PRINTSTR BT
PRINTSTR ([CH13]+[CH10])
BT=[CP BT,24,2]
BT=[VL BT]
ET=BT
:CHECKFILE
IF [FE FL]>-1 GOTO YES; ENDIF
EZ=[SF 0,99]
ET=[CP EZ,24,2]
ET=[VL ET]
IF ET<BT ET=ET+60; ENDIF
*IF ((ET-BT)=0) PRINTSTR EZ TO FILE FL; ENDIF .*отладочная стр.[0]
*IF ((ET-BT)=1) PRINTSTR EZ TO FILE FL; ENDIF .*отладочная стр.[1]
*IF ((ET-BT)=2) PRINTSTR EZ TO FILE FL; ENDIF .*отладочная стр.[2]
*IF ((ET-BT)=3) PRINTSTR EZ TO FILE FL; ENDIF .*отладочная стр.[3]
*IF ((ET-BT)=4) PRINTSTR EZ TO FILE FL; ENDIF .*отладочная стр.[4]  
IF (ET=BT)|((ET-BT)<5) GOTO CHECKFILE; ENDIF
RZ='FILE NOT FOUND'
GOTO END
STOP
:YES
RZ='FILE FOUND'
:END
PRINTSTR 'RESULT:'
PRINTSTR RZ
PRINTSTR ([CH13]+[CH10])
PRINTSTR EZ
STOP      

Чтобы проверить, необходимо раскомментировать отладочную строку [X] и одну из отладочных строк [0]-[4] (в зависимости от того, должен ли файл попытаться появиться сразу же, либо через 4 сек.)
 
"Файл давно уже есть"  Smiley понятие немного растяжимое, если это промежуток длиной менее секунды, то вместо [sf 0,99] таймер лучше строить через [sf 0,9]
Зарегистрирован
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #4 В: 23.07.17 в 15:49:24 »
Цитировать | Править

on 23.07.17 в 14:55:24, mine-R wrote:
Ещё один пример (с отладочными вставками внутри)

 
У меня два вопроса к Вам:
1. Приведенный фрагмент используется Вами в какой-либо рабочей базе?
2. Вы наблюдали в диспетчере задач, на  вкладке "Процессы" строчку fnt10p422.exe(к примеру) параллельно с отработкой формы, использующей этот фрагмент?
 
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 102
Re: Ожидание файла и продолжение выполнения формы
« Ответить #5 В: 23.07.17 в 17:10:45 »
Цитировать | Править

on 23.07.17 в 15:49:24, Boris, Kiev. wrote:

 
У меня два вопроса к Вам:
1. Приведенный фрагмент используется Вами в какой-либо рабочей базе?
2. Вы наблюдали в диспетчере задач, на  вкладке "Процессы" строчку fnt10p422.exe(к примеру) параллельно с отработкой формы, использующей этот фрагмент?
 

 
Погонял и так и эдак данный пример..
 
1. Подобные фрагменты встречаются в достаточно старых наработках по обмену через файлы со сторонними приложениями, с оговоркой что таймер всегда выставлен не более чем на 1 сек. (изредка 2 сек.)
 
 
2. Процессор i3-2310M @2.1GHz + 4Gb RAM DDR3 (Win7 x64) - Сервер занял на эти 5 сек. данного примера 31% ресурсов ЦП
    Процессор Pentium 4 3.0 GHz + 1,5Gb RAM DDR2 (Win7 x32) - на эти же секунды занял 51% ресурсов.  
 
Сервер был не единственным запущенным приложением на машинах.
 
Сказать по правде, ни единого случая какого либо сбоя, отказа системы и даже визуально заметного глазу подвисания, отчетные формы с такими фрагментами не вызвали.
 
Если на одной машине запущены в параллель несколько Серверов и теоретически 2-3 из них могут начать одновременную отработку такого фрагмента, нагрузка может стать критической. Но это уже чисто умозрительные мои заключения.
Зарегистрирован
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #6 В: 23.07.17 в 18:53:19 »
Цитировать | Править

on 23.07.17 в 17:10:45, mine-R wrote:

 
Погонял и так и эдак данный пример..
 
1. Подобные фрагменты встречаются в достаточно старых наработках по обмену через файлы со сторонними приложениями, с оговоркой что таймер всегда выставлен не более чем на 1 сек. (изредка 2 сек.)

 
Автор этой ветки назвал её: "ожидание файла..."
 
Знаю, что лично, Вам более акцентировать ничего не нужно.
 
on 23.07.17 в 17:10:45, mine-R wrote:

2. Процессор i3-2310M @2.1GHz + 4Gb RAM DDR3 (Win7 x64) - Сервер занял на эти 5 сек. данного примера 31% ресурсов ЦП
    Процессор Pentium 4 3.0 GHz + 1,5Gb RAM DDR2 (Win7 x32) - на эти же секунды занял 51% ресурсов.  

 
Здесь замечу, что наш серверный модуль способен занять только одно ядро из всех имеющихся.
Уверен, что сегодня уже практически не осталось одноядерных процессоров. Поэтому, те проценты, которые вы прописали и говорят о практически полной загрузке одного из ядер.
 
Проверить и ждать - это две большие разницы. И в случае ожидания, т.е. получения ожидаемого условия в нашей форме можно не дождаться не только внутреннего ANS, но и файла внешнего приложения, т.к. процессор банально не будет "отпущен" нашим сервером на обработку других задач(правда остается неизвестным привязка внешнего приложения и ещё игра с приоритетами, но мои давние эксперименты с этим мало что меняли в лучшую сторону, может кто чего добъется этим, милости просим - поделитесь, может кто найдет примочки по распределению задач по ядрам).
 
Авторам альтернативных клиентов просьба будет, как сделаете(а может уже и есть у вас, а вы просто молчите) аналог директивы на нашем модном:
 
N:UPDATE_FORMS:ИМЯ_ФОРМЫ[?,"[TIME]]
 
дайте знать.  
Буду рад, если что-нибудь совсем альтернативное реализуете, ведь операционные системы тоже обновляются. Ждём.
Зарегистрирован
box_vma

*



Я люблю этот Форум!

   
Просмотреть Профиль |

Сообщений: 43
Re: Ожидание файла и продолжение выполнения формы
« Ответить #7 В: 23.07.17 в 20:48:30 »
Цитировать | Править

Т.к. у вас ожидается файл с расширением ANS, и вероятно имеет отношение к работе самого сервера, то может расскАжите подробнее свою задачу.
 
К работе самого сервера задача не имеет отношения. Внедряем работу ФБП с кассой-онлайн. Касса подключена через COM-порт на одной из клиентских машин. В заданный каталог обмена направляются команды для кассы, каталог сканируется специально разработанным приложением, при появлении файла с командами для кассы, они передаются в COM порт, и затем в этом-же каталоге создается файл-ответ. Вот этот файл-ответ и ждем, для дальнейшего выполнения сценария ФБП.
 
Штатный клиент не используется, используем модифицированный шлюз С. Васеленко.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 102
Re: Ожидание файла и продолжение выполнения формы
« Ответить #8 В: 23.07.17 в 22:06:29 »
Цитировать | Править

on 23.07.17 в 18:53:19, Boris, Kiev. wrote:

 
Автор этой ветки назвал её: "ожидание файла..."
 

 
Всё так, касаемо названия ветки, но в самом сообщении обозначен временной лимит этого ожидания в 5 секунд.  
 
Вообще-то у меня давно назрел вопрос ко всем по поводу того, как организовывается в ФБП аналог BAT-овской команды PAUSE или того же NOP (т.е. "ожидай и не делай ничего, не загружай процессор"). Склоняюсь к тому, что это всё-же как-то должно регулироваться клиентскими частями.
 
Как Вы видите, узко-специализированные наработки клиентских частей есть практически у каждого, а клиентские приложения - помимо штатных, пока только у Вас и у Владимира.
 
Касаемо директивы, которую Вы обозначили - вряд ли она вообще будет (в моих альтернативных наработках ). Обновления по таймеру для одной (последней открытой) формы, по моему мнению вполне достаточно. Для рядовых же  пользователей, держать в параллельных MDI-окошках несколько динамически обновляющихся форм - на практике такой необходимости пока просто не возникало.
Зарегистрирован
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #9 В: 24.07.17 в 07:33:03 »
Цитировать | Править

on 23.07.17 в 20:48:30, box_vma wrote:

Вот этот файл-ответ и ждем, для дальнейшего выполнения сценария ФБП.
 
Штатный клиент не используется, используем модифицированный шлюз С. Васеленко.

 
Т.е. этот шлюз в вашей модификации стал гибридным клиентом, запускающим формы?
Очень интересно.
 
Зарегистрирован
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #10 В: 24.07.17 в 08:16:12 »
Цитировать | Править

on 23.07.17 в 22:06:29, mine-R wrote:

 
 
Вообще-то у меня давно назрел вопрос ко всем по поводу того, как организовывается в ФБП аналог BAT-овской команды PAUSE или того же NOP (т.е. "ожидай и не делай ничего, не загружай процессор").

 
Здесь, наверное оговорились. NOP - новость для меня, в help(e) не обнаружил. PAUSE - просто приостанавливает исполнение батничка. Вы наверное вспомнили про SLEEP.EXE, которая часто использовалась и продолжает использоваться для этих целей. Но если, Вы подумали  про PAUSE, то можете смело ставить STOP и писать:
..
Жмите [R] для контроля появления файла ...
stop
endif от проверки условия
 
on 23.07.17 в 22:06:29, mine-R wrote:

Склоняюсь к тому, что это всё-же как-то должно регулироваться клиентскими частями.

 
Здесь не соглашусь, т.к. в форме(т.е. на сервере) реализовать sleep - как и в других языках программирования - не есть что-то невозможное.
 
Quote:

Обновления по таймеру для одной (последней открытой) формы, по моему мнению вполне достаточно.

Увы, если это про представленные алгоритмы "ожидания", то это простецкое заблуждение. См. свои цифры выше.  
 
И для автора ветки:
Если прикипели к штатному клиенту, то сделайте батничек с использованием sleep.exe и в конце модифицируйте upti и получите "возможно устарело" или отведите одно клиентское место под робота с автообновлением всех форм(поставьте период 5 или 10 сек) и будет вам счастье.
 
Зарегистрирован
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #11 В: 24.07.17 в 17:59:59 »
Цитировать | Править

Перечитал:
 
on 23.07.17 в 22:06:29, mine-R wrote:

Для рядовых же  пользователей, держать в параллельных MDI-окошках несколько динамически обновляющихся форм - на практике такой необходимости пока просто не возникало.

 
Возможно, Вы не совсем прониклись директивой
N:UPDATE_FORMS:ИМЯ_ФОРМЫ[?,"[TIME]]
Загрузите последнюю версию, стартуйте с двумя именами и полюбуйтесь как оно работает.
 
Вот рабочий пример формы NONAME соорудил:
 
NF='NONAME'
*[sed [user]+'*WAIT*'+NF,0] обновите этой строкой в форме, предшествующей запуску своей формы(NF-не забудьте)
FA=[dir0]+'README.TXT'
if [:KKM_WA FA]>0
   Файл уже есть, идем дальше..
   goto EDALEE
else
   45 секунд прошло, файл не появился.
*   здесь можете сделать продолжение о принятии решения продлить ожидание или прочее...
endif
:EDALEE
stop
:KKM_WA (FA)     ожидаем ответ
   if [fe FA]=-1
DI='N:UPDATE_FORMS:'+NF+'"5'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^DI
   KO=[ged [user]+'*WAIT*'+NF]+1 кол-во обращений к KKM_WA
   [sed [user]+'*WAIT*'+NF,KO]
   TI=KO*5
      if TI>40 return (0);endif
      Ждем появления файла, делаем проверки каждые 5 секунд.
      Не нагружая сервер и процессор.
      Уже прошло ^^^TIс.
   stop
   endif
return (1)
stop
 
 
Про параллельные MDI-окошки, это можно сказать высший пилотаж применения этой директивы, вы можете открыть три формы - аналоги окошек проводника(дерево каталогов, список файлов активного каталога в дереве каталогов и третье окно с содержимым активной строки во втором окне). Это сегодня реально сделать, только не очень удобно, но это пока.
Из того, что понравилось юзерам - это, помимо описанного примера, мгновенное обновление без лишних нажатий клавиши пробел в ответ на "возможно устарело". Это устраивается через вызов формы ввода данных в extrd.dat и последовательное обновление формы, которая её вызвала.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 102
Re: Ожидание файла и продолжение выполнения формы
« Ответить #12 В: 24.07.17 в 23:25:06 »
Цитировать | Править

Quote:

 
Здесь, наверное оговорились. NOP - новость для меня, в help(e) не обнаружил. PAUSE - просто приостанавливает исполнение батничка. Вы наверное вспомнили про SLEEP.EXE, которая часто использовалась и продолжает использоваться для этих целей. Но если, Вы подумали  про PAUSE, то можете смело ставить STOP и писать:
..
Жмите [R] для контроля появления файла ...
stop
endif от проверки условия

 
Да, по поводу PAUSE оговорился, ибо эта команда включает ожидание реакции пользователя. SLEEP.EXE наиболее близкий вариант к опкоду NOP (No Operation).
 
Quote:

 
Здесь не соглашусь, т.к. в форме(т.е. на сервере) реализовать sleep - как и в других языках программирования - не есть что-то невозможное.  
 

 
А каким образом возможно реализовать sleep на чистом ФБП в Сервере, при этом не нагружая его?
 
N:UPDATE_FORMS:ИМЯ_ФОРМЫ[?,"[TIME]]  
 
Насколько я понял, прогнав Ваш пример, [TIME] это по сути тот же SLEEP.EXE - т.е. таймер, делегированный на Клиент. На Сервере же происходит лишь считываение/обновление в соответствии с таймером Клиента, данных в extrd.dat и реакция на выполнение/невыполнение условия (на появление/непоявление файла). Поправьте, если я понял неверно.
 
Quote:

 
Увы, если это про представленные алгоритмы "ожидания", то это простецкое заблуждение. См. свои цифры выше.  
 

 
Нет, тут скорее про то, что
 
N:UPDATE_LAST_OPENED_FORM[?,"[TIME]]  
 
на практике обычно вполне достаточно. Хотя, допускаю, что могут быть и такие задачи, когда полезно наблюдать обновления по таймеру более чем одной открытой формы. Но лично я с такими задачами пока не столкнулся (если оставить за скобками пользу для разработчиков при отладке учетных систем).
Зарегистрирован
Boris, Kiev.
Moderator

*****



Адепт ФБП  с 1996г.

   
Просмотреть Профиль | E-мэйл

Сообщений: 816
Re: Ожидание файла и продолжение выполнения формы
« Ответить #13 В: 25.07.17 в 08:07:30 »
Цитировать | Править

on 24.07.17 в 23:25:06, mine-R wrote:

А каким образом возможно реализовать sleep на чистом ФБП в Сервере, при этом не нагружая его?

На Вас это не похоже. Сильно не обидетесь?, если посоветую погуглить "аналог sleep в языках программировния"
 
Quote:

Насколько я понял, прогнав Ваш пример, [TIME] это по сути тот же SLEEP.EXE - т.е. таймер, делегированный на Клиент.

Да, так, по сути, лучше не скажешь, но реализовано на Паскале хитро, сейчас разворачивать не буду, чтобы конкретно описать. Понаблюдайте за нашими модулями на вкладке "Процессы" при этом. Может понравится!?...
Quote:

 На Сервере же происходит лишь считываение/обновление в соответствии с таймером Клиента, данных в extrd.dat и реакция на выполнение/невыполнение условия (на появление/непоявление файла). Поправьте, если я понял неверно.

Здесь чуть проще, просто клиент шлет директиву серверу на обновление указанной формы.
 
Наверное будет уместно ещё раз прописать строки инструкции по этой директиве.
 

//BK 130217-20130527
  Целевое обновление требуемых окон.
 
 Добавлено ещё одно расширение директивы N:
 
 N:UPDATE_FORMS:ИМЯ_ФОРМЫ[?,"[TIME]]
 
 т.е., например, если в любом отчете есть строки:
 
 N:UPDATE_FORMS:FORM1
 то клиент попытается обновить отчет формы FORM1
 
 N:UPDATE_FORMS:FORM2?
 то клиент попытается послать "Возможно устарело" в окно формы FORM2
 
 N:UPDATE_FORMS:FORM3"10
 то клиент попытается обновить отчет формы FORM3 через 10 секунд.
 
 N:UPDATE_FORMS:FORM4"
 то клиент попытается обновить отчет формы FORM4 через N секунд, что указано в "Опции"-"Период обновления"
 также если в TIME будет ошибка, то также клиент будет использовать значение из опций.
 
  Взятие на вооружение этих возможностей позволит настройщикам:
 - одновременно, разгрузить сервер, особенно в случае множества открытых окон, и отказаться от вложенных папок по именам
   клиентов в каталоге обмена \_BOX_  
   т.к. эта структура была реализована с целью возможности обособленного обновления форм каждого клиента посредством
   непосредственной модификации собственного upti(в текущей версии клиента снято соответствующее ограничение на старте);
 - реализовывать сценарии связанных окон, например, классическую схему проводника узкого окна(дерева каталогов)
   и широкого окна(списка файлов выбранного каталога в узком окне) или 3-ех оконных навигаторов по документам,
   правда, здесь будет не хватать возможностей задания, хранения и восстановления исторических положений и размеров окон;
 - ваять настоящих роботов без выделения отдельного клиентского места и ограничений в периоде обновления,
   теперь ФБП-настройщики могут легко потеснить ряды биржевых спекулянтов;
 - заняться моделированием нагрузки на сервер, приближенной к реальным системам для поиска узких мест и соответственно
   путей их разрешения.

 
Quote:

Нет, тут скорее про то, что
N:UPDATE_LAST_OPENED_FORM[?,"[TIME]]  
 
на практике обычно вполне достаточно.

Вам решать, "хозяин-барин".
Своё мнение уже изложил. Подумайте, здесь не очень сложно. Будут аргументы и выводы из всего этого для развития своего клиента - пишите, буду рад обсудить.
Зарегистрирован
mine-R

***



compact & flexible rulezzz

   
Просмотреть Профиль |

Сообщений: 102
Re: Ожидание файла и продолжение выполнения формы
« Ответить #14 В: 27.07.17 в 17:51:53 »
Цитировать | Править

Quote:
На Вас это не похоже. Сильно не обидетесь?, если посоветую погуглить "аналог sleep в языках программировния"

Я и вовсе не из обидчивых  Smiley докопаться бы "до истины". Гугл и языки программирования это здорово, но хотелось бы реализации именно через интерпретатор ФБП т.е. через виртуальную машину Сервера, не делегируя таймер ни батникам, ни внешним приложениям.
Обычно я через пустые циклы ожидания организовываю, т.к. предполагаю, что предусмотрен для циклов периодический обмен системными сообщениями между Сервером и системой. Но сказать, что такие конструкции абсолютно не загружают ресурсы машины тоже нельзя.
Если Вы знаете идеальный алгоритм, и этот алгоритм не засекречен - поделитесь  Smiley
Зарегистрирован
Страниц: 1 2  Ответить | Уведомлять | Послать Тему | Печатать

« Предыдущая Тема | Следующая Тема »

Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board