Возобновление работы скрипта после восстановления коннекта

Страницы: 1
RSS
Возобновление работы скрипта после восстановления коннекта
 
Всем доброго времени суток,  подскажите кто знает, возможно ли в QUIKе сделать две вещи:
1. Автоматическое возобновление работы скрипта после разрыва связи с сервером и ее восстановления квиком, а то бывает рвется связь, скрипт останавливается - по той причине что в в этот момент не смог получить какие нибудь данные с сервера, но скрипт то об этом не знает а просто данные которые он запрашивал по причине их неполучения с сервера имеют значение nil, в результате из за этого скрипт отваливается с ошибкой, и после реконнекта квика с сервером он уже сам не запустится, и квик его тоже не собирается запускать, а пихать через строчку if isconnected()==1  then .... тоже не дело, в цикле main() я то такую строчку сделал но вот если команды внутри цикла уже начали выполнятся то обрыв связи и отвал скрипта.
2. Возможно ли приостанавливать скрипт по временным условиям (нерабочие часы и дни биржи) и также возобновлять его работу по этим условиям (наступление времени торговой сессии)

Вообще я такую временную приостановку в цикле main() сделал

   while isConnected()~=1 or нерабочее время do

   sleep (60000)

   end

где нерабочее время - функция путем нехитрых вычислений и системного времени выдающая true или false
но в итоге в нерабочее время весь квик просто зависает с курсором в виде крутящегося кругляшка а на следующий день при наступлении рабочего времени не развисает
функция времени у меня 100% рабочая много раз проверял багов там быть не может
 
Анатолий,
1) Код не должен ничего делать (т.е. гонять в main пустой цикл) пока нет коннекта к серверу (при этом проверки только на коннект недостаточно, см. ниже), тогда и ошибок не будет.
2) isConnected проверяет коннект к серверу QUIK, а не рабочее время биржи. Это очень разные вещи. Если сервер QUIK  работает далеко не факт что работает биржа.
Правильней всего проверять: коннект к серверу + время проведения торгов с проверкой на выходные + проверять статус сессии в таблице текущих торгов.
 
Цитата
Анатолий написал:
скрипт останавливается - по той причине что в в этот момент не смог получить какие нибудь данные с сервера
Я написал свой скрипт так, что он практически ничего сам не запрашивает с сервера, а работает с той информацией, которую получает от колбэков. В этом случае для скрипта ситуации отсутствия связи и отсутствия сделок с интересующим инструментом неотличимы. Разумеется об обрыве связи скрипт меня информирует, но сбоев в работе скрипта никаких не происходит. При восстановлении связи сервер досылает всю пропущенную информацию в хронологическом порядке, либо дает команду клиентскому месту о перезапуске высылаемой информации (OnCleanUp). Соответственно, по OnCleanUp скрипт также перезапускается.
Да, в момент стартовой инициализации, в т.ч. по OnCleanUp скрипт смотрит, есть связь с сервером, прежде чем начать считывать необходимую информацию из интересующих таблиц Quikа. И только получив всю необходимую осмысленную стартовую информацию (что происходит вовсе не сразу после OnConnect или OnCleanUp) переходит в обычный рабочий режим.
Страницы: 1
Читают тему
Наверх