День добрый! Столкнулся с проблемой. Очередной.. Даю команду на снятие заявки. Жду сначала ответа от трансрепли, потом от онордера. Макс ожидание 10 сек. Прошла одна пауза (в раб. сессию), потом вторая десятисекундка - тишина. Скрипт решил что не прошло, и продолжил работу, благополучно навертев мне всякой ерунды.
Вопрос. Если я отправил заявку и не пришел ответ, что делать? Ждать до бесконечности? Ведь может же получиться, что и при соединении и при сессии, при всем нормальном, ответа долго не будет, а потом он придет и команда исполнится? И может ли так получиться, что команда просто уйдет в никуда и потеряется. Без всяких ответов? Если такого быть не может, то да, надо ждать, ведь отменить то, что я уже отправил и на что ответа не получил я не могу. Или могу?
Пользователь
Сообщений: Регистрация: 04.03.2015
01.06.2015 19:42:10
Еще вопрос. На скорость получения ответа что-то влияет? Например объем данных, получаемых в раб место, заполненность ТВС, которая к концу сессии выше и тд.
Пользователь
Сообщений: Регистрация: 23.01.2015
02.06.2015 07:49:56
Здравствуйте, При всем нормальном ответ на транзакцию должен быть всегда. Если по каким-то причинам его нет или он приходит с ощутимой задержкой это повод обратиться к брокеру, возможно есть проблемы на его стороне.
Рабочее место пользователя тоже может привести к таким последствиям, если привести к зависанию терминала. Например если сделать бесконечный цикл в событии.
Пользователь
Сообщений: Регистрация: 04.03.2015
02.06.2015 10:15:02
Сергей, день добрый. Про зависание - понятно, но его не было, логи шли по скриптам, а ответа все не было. Потом он пришел секунд через 30 и из-за моей реализации скрипт поплыл.
Про брокера понятно, так что конкретизирую вопросы:
1. Ситуация - ждем ответ, его все нет. Что вы, как разработчики, посоветуете делать? Если просто дальше ждать, то может вообще моя транзакция не дошла? Если еще одну отправить - две могут в результате исполнится. Какой алгоритм действий вы можете предложить в ситуации долгого ответа?
2. Кроме бесконечного цикла в скрипте, сами по себе настройки квика могут повлиять на скорость и качество обмена инф с сервером? Нагруженость, так сказать, квика повлияет на это?
Пользователь
Сообщений: Регистрация: 04.03.2015
02.06.2015 11:01:50
3. Как через клуа пинговать сервер?
Пользователь
Сообщений: Регистрация: 23.01.2015
02.06.2015 11:15:42
Цитата
Viktor MMM пишет: 1. Ситуация - ждем ответ, его все нет. Что вы, как разработчики, посоветуете делать? Если просто дальше ждать, то может вообще моя транзакция не дошла? Если еще одну отправить - две могут в результате исполнится. Какой алгоритм действий вы можете предложить в ситуации долгого ответа?
Если ответа нет, наверное следует вывести ошибку в лог и остановить работу. Но решать Вам.
Цитата
Viktor MMM пишет: 2. Кроме бесконечного цикла в скрипте, сами по себе настройки квика могут повлиять на скорость и качество обмена инф с сервером? Нагруженость, так сказать, квика повлияет на это?
Настройки могут повлиять на нагрузку процессора, а нагрузка процессора может привести к зависанию, так что да. Есть соответствующие рекомендации по оптимизации:
Цитата
Viktor MMM пишет: 3. Как через клуа пинговать сервер?
Либо os.execute, либо параметр "Задержка данных при обмене с сервером" информационного окна, работает при включенной галке "Проверять связь с сервером каждые … секунд" в меню Связь - Доступные соединения
Пользователь
Сообщений: Регистрация: 04.03.2015
02.06.2015 11:16:58
к вопросу 2. Если сводить к минимуму ТВС, настраивать графики на минимальное отображение кол-ва свечей, еще что-то подстроить, списки, понятное дело, повлияет все это на качество обмена данных между раб местом и сервером? Или все это припарки?
Пользователь
Сообщений: Регистрация: 04.03.2015
02.06.2015 11:19:09
Сергей, пачал писать прошлое сообщ. когда Вашего еще не было. изучу. Можете пример простенький с os.execute ?
Пользователь
Сообщений: Регистрация: 04.03.2015
02.06.2015 11:22:11
имеется в виду, чтобы не просто вызвать пинг, а скриптом получить результультат этого пинга..
Пользователь
Сообщений: Регистрация: 23.01.2015
02.06.2015 11:30:29
Цитата
Виктор МММ пишет: имеется в виду, чтобы не просто вызвать пинг, а скриптом получить результультат етого пинга..
если получить результат то это уже io.popen()
Почитать тут:
Пользователь
Сообщений: Регистрация: 04.03.2015
02.06.2015 11:59:40
Спасибо, Сергей! Подскажите, пожалуйста, как с кодировкой справиться?
К сожалению у нас нет рекомендаций на этот счет, может есть ответ на форумах посвященных LUA
Пользователь
Сообщений: Регистрация: 01.02.2015
02.06.2015 18:23:12
для начала, приведите весь скрипт полностью. В другой Вашей теме Вам уже ответили, что это за кодировки. Осталось только увидеть весь скрипт, чтоб понять, ка Вы получаете эти строки.