Остановка и запуск скрипта из другого скрипта

Страницы: 1
RSS
Остановка и запуск скрипта из другого скрипта
 
Подскажите, возможна ли остановка и запуск скрипта из другого скрипта ?

К примеру так: первый скрипт следит за соединение Квика - если соединение разрывается, то первый скрипт останавливает второй скрипт.
Первый скрипт ждет пока восстановится соединение и как только соединение восстанавливается первый  скрипт запускает второй скрипт.
 
Quikos, добрый день.

В настоящий момент в QLua нет функции, которая позволяла бы запустить в Рабочем месте QUIK какой-либо загруженный скрипт. Возможно, для Ваших целей подойдет стандартная Lua-функция require - с ее помощью можно запустить внешний по отношению  к терминалу скрипт, то есть не работающий напрямую с терминалом.

Отметим, что описанный Вами алгоритм можно реализовать в одном скрипте:
1) используя функцию isConnected для отслеживания наличия соединения с сервером и условные операторы для выполнения определенного блока кода;
2) используя функции обратного вызова OnDisconnected и OnConnected, исполняющие заданный код в случае отключения терминала от сервера QUIK или установления связи с сервером соответственно.
Более подробная информация о применении указанных функций доступна в Руководстве пользователя интерпретатора QLua (https://arqatech.com/upload/iblock/194/quik_lua.zip).

При выборе описанного подхода нет необходимости в запуске дополнительных скриптов.
 
Цитата
Anton Belonogov написал:
Quikos, добрый день.

В настоящий момент в QLua нет функции, которая позволяла бы запустить в Рабочем месте QUIK какой-либо загруженный скрипт. Возможно, для Ваших целей подойдет стандартная Lua-функция  require  - с ее помощью можно запустить внешний по отношению  к терминалу скрипт, то есть не работающий напрямую с терминалом.

Отметим, что описанный Вами алгоритм можно реализовать в одном скрипте:
1) используя функцию  isConnected  для отслеживания наличия соединения с сервером и условные операторы для выполнения определенного блока кода;
2) используя функции обратного вызова  OnDisconnected  и  OnConnected , исполняющие заданный код в случае отключения терминала от сервера QUIK или установления связи с сервером соответственно.
Более подробная информация о применении указанных функций доступна в  Руководстве пользователя интерпретатора QLua  ( https://arqatech.com/upload/iblock/194/quik_lua.zip) .

При выборе описанного подхода нет необходимости в запуске дополнительных скриптов.

Это не поможет, так как при вызове хотя бы одной функция SetUpdateCallback:Close()   - дальнейшая подписка на прием данных через CreateDataSource - НЕ работает в запущенном скрипте. Чтобы CreateDataSource  - опять работал, нужно выгрузить скрипт и опять его запустить.
 
Цитата
Quikos написал:
Подскажите, возможна ли остановка и запуск скрипта из другого скрипта ?

К примеру так: первый скрипт следит за соединение Квика - если соединение разрывается, то первый скрипт останавливает второй скрипт.
Первый скрипт ждет пока восстановится соединение и как только соединение восстанавливается первый  скрипт запускает второй скрипт.
скрипт - это всего лишь текст на языке луа.
Почему не можете все написать в одном романе, зачем  второй?
 
Цитата
nikolz написал:
Цитата
Quikos написал:
Подскажите, возможна ли остановка и запуск скрипта из другого скрипта ?

К примеру так: первый скрипт следит за соединение Квика - если соединение разрывается, то первый скрипт останавливает второй скрипт.
Первый скрипт ждет пока восстановится соединение и как только соединение восстанавливается первый  скрипт запускает второй скрипт.
скрипт - это всего лишь текст на языке луа.
Почему не можете все написать в одном романе, зачем  второй?
А Вы можете изъяснятся точно, точно так же, как пишите код, а не про Романов писать ?
 
Quikos, Изъясяюсь точно: скрипт должен быть ОДИН. Всё остальное - это, в лучшем случае, неумение программировать. Если скрипт ждёт пока восстановится соединение (моему, например, это совершенно по барабану), то пусть начнёт работать ТОТ ЖЕ САМЫЙ скрипт, второй нафиг не нужен. Если стали поступать новые данные, значит соединение восстановлено. Или торги начались. Или тикер начал, наконец, торговаться после паузы.
 
Quikos, добрый день.

Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
 
Quikos, добрый день.

Причина данной проблемы установлена и будет устранена в одной из ближайших версий библиотеки qlua. В качестве временного решения рекомендуем перед вызовом ds:Close() для закрытия таблицы устанавливать пустую функцию обратного вызова с помощью ds:SetEmptyCallback().
Страницы: 1
Читают тему
Наверх