Использую тестовый HTML-скрипт с вашего сайта.
Для печати слип-чека передаю в ExecuteCommand async=true.
Однако результат получаю всё равно с задержкой до окончания печати чека и со статусом=0, т.е. уже после успешного завершения команды.
Я ожидал, что при асинхронном режиме ответ будет сразу со статусом 1 или 4, чтобы потом запросить результат.
асинхронный режим
Re: асинхронный режим
Асинхронный режим - пережиток старого, надо убрать из документации
Используйте в данных команды поле "Timeout" - время в секундах сколько ожидать завершения команды.
Ставьте допустим 1 - тогда управление вернется сразу и уж далее проверять выполнение через "GetRezult"
Используйте в данных команды поле "Timeout" - время в секундах сколько ожидать завершения команды.
Ставьте допустим 1 - тогда управление вернется сразу и уж далее проверять выполнение через "GetRezult"
Re: асинхронный режим
Да, Timeout работает.Audim писал(а):Асинхронный режим - пережиток старого, надо убрать из документации
Используйте в данных команды поле "Timeout" - время в секундах сколько ожидать завершения команды.
Ставьте допустим 1 - тогда управление вернется сразу и уж далее проверять выполнение через "GetRezult"
В чем разница путей Execute/sync и Execute/async тогда?
И ещё вопрос.
Например, ставлю Timeout:30. Будет ли в течение этих 30 секунд сервер выполнять команды для других ККМ или будет ставить их в очередь и ждать выполнения последней команды или истечения 30 секунд?
Re: асинхронный режим
В чем разница путей Execute/sync и Execute/async тогда?
Ни в чем.. Пережиток старого - для совместимости
Например, ставлю Timeout:30.
Будет ли в течение этих 30 секунд сервер выполнять команды для других ККМ или будет ставить их в очередь и ждать выполнения последней команды или истечения 30 секунд?
Команда ставится в очередь и ожидается ее постановка из очереди на выполнение и само выполнение в течении 30 сек.
При этом если в очереди были команды то сначала выполняются они.
Если команда уже начилась выполняться но не закончилась - в статусе вернет Run = 1
Если команда так и осталась ожидать в очереди то вернет NotRun = 4
Если команда выполнилась то вернет или Ok = 0 или Error = 2.
Для GetRezult еще может вернуть NotFound = 3, - не найдена ранее запущенная команда команда
ЗЫ: Можно добавить в очередь по ИНН а не по номеру устройства.
Тогда если на сервере две ККТ с этим ИНН - то получается одна очередь на 2 ККТ - команды поочередно ставятся то на одну то на другую ККТ.
Ни в чем.. Пережиток старого - для совместимости
Например, ставлю Timeout:30.
Будет ли в течение этих 30 секунд сервер выполнять команды для других ККМ или будет ставить их в очередь и ждать выполнения последней команды или истечения 30 секунд?
Команда ставится в очередь и ожидается ее постановка из очереди на выполнение и само выполнение в течении 30 сек.
При этом если в очереди были команды то сначала выполняются они.
Если команда уже начилась выполняться но не закончилась - в статусе вернет Run = 1
Если команда так и осталась ожидать в очереди то вернет NotRun = 4
Если команда выполнилась то вернет или Ok = 0 или Error = 2.
Для GetRezult еще может вернуть NotFound = 3, - не найдена ранее запущенная команда команда
ЗЫ: Можно добавить в очередь по ИНН а не по номеру устройства.
Тогда если на сервере две ККТ с этим ИНН - то получается одна очередь на 2 ККТ - команды поочередно ставятся то на одну то на другую ККТ.
Re: асинхронный режим
Вот пошла она на выполнение и выполняется.Audim писал(а): Команда ставится в очередь и ожидается ее постановка из очереди на выполнение и само выполнение в течении 30 сек.
В этот момент на ККМ-сервер приходит ещё одна команда но для другого ККМ. Она будет ждать или сразу уйдёт на выполнение?
Re: асинхронный режим
Если для другого то сразу на него уйдет.
Сервер внутри себя многопоточен - каждое устройство - свой поток.
Сервер внутри себя многопоточен - каждое устройство - свой поток.
Re: асинхронный режим
Отлично!Audim писал(а):Если для другого то сразу на него уйдет.
Сервер внутри себя многопоточен - каждое устройство - свой поток.