Сейчас, при установке галочки “Непрерывный опрос текущих”, после завершения сеанса опроса, система назначает таймаут из расписания опроса.
Чтобы текущие действительно опрашивались непрерывно, нужно сделать так, чтобы после завершения сеанса опроса, следующий сеанс опроса начинался через таймаут, указанный для “Непрерывного опроса текущих”.
Поддерживаю предложение
Посмотрел исходную тему, причину появления непрерывного опроса текущих - (Автоматический опрос чаще, чем раз в минуту [4968]) . В ней автор просто пропал, и в теме нет требований по реализации именно текущего механизма непрерывного опроса текущих.
Т.е. непрерывный опрос текущих только в течение одного сеанса опроса - это удобство реализации, а не требование определённого сценария работы. Но при этом, текущая реализация в большинстве случаем не мешает работе и пользователь не всегда замечает эту особенность непрерывного опроса текущих.
Как правило, если пользователя не устраивает предложенный вариант, он пишет об этом в предложении. В любом случае сейчас у вас есть возможность внести свое виденье того, как должен работать непрерывный опрос текущих.
Моё видение я описал ранее: “если нужны текущие данные, то их нужно поставлять”, то есть, если пользователь пожелал получить текущие данные с дискретом 10 секунд, значит, и нужно их поставлять. И система должна действовать с учётом этой задачи, не ограничивая поставку данных текущим сеансом опроса.
Такая реализация была выбрана исходя из предположения, что порт должен время от времени обрабатывать другие задачи, а не только непрерывный опрос. Проще всего это сделать как раз с помощью остановки сеанса после таймаута, чтобы дать возможность выполнить другие задания.
Так это же хорошо.
А почему нельзя установить этот таймаут в минимальное значение?
Я пока не понимаю в чём смысл этого предложения. Какие конкретные неудобства это доставляет? Хотелось бы пример из жизни.
В этом кроется ваша ошибка. Если мне нужен непрерывный опрос, значит другие задачи должны быть прерваны.
У меня много узлов опрашивается с таймаутом повтора и таймаутом повтора при ошибке в несколько часов. Чтобы сделать минимальный таймаут, нужно сделать новое расписание опроса для всех точек учёта. Потом, чтобы вернуть большой таймаут, придется снова переделывать расписания у всех точек. Ещё, одна минута, это не 10 секунд, это бывает важно. Мне нужно по-быстрому включить или выключить непрерывный опрос у десяти Оъектов учета. В каждом Объекте от трёх и более точек учёта. Как это сделать?
Пример из жизни. Гидроиспытания систем центрального отопления и гвс. В начем городе по графику испытания проводятся в несколько этапов, каждый район города проверяют в отдельный день. В назначенный день, трубопроводы испытываются высоким давлением. В этот день в насосной станции насос перенастраивают и включают. Специалисты в это время следят за давлением и показаниями расходомеров, в разных ветках трубопровода, это примерно десять Объектов учёта. Если давление упало, значит нужно быстро найти и устранить утечку, затем снова поднять давление и продолжать испытания. Каждый этап испытаний проводится несколько часов, после его завершения нужно прекратить непрерывный опрос.
Это не ошибка, мы выбрали такой подход к реализации и описали его. На момент проектирования никаких минусов мы не видели.
У точки опроса может быть несколько расписаний - одно с нужными повторами и паузой, а второе с непрерывным опросом и с минимальным таймаутом. Необязательно редактировать существующее. Вы можете быстро добавить ещё одно расписание групповой операцией.
Тут согласен, сейчас минимальная задержка это 1 минута. Возможно, стоит снизить, но нужно понимать есть ли другие неудобства, кроме этого. С учётом того, что я написал выше.
Тогда нужно, чтобы для каждого расписания была возможность включить его, либо выключить. Сейчас такой возможности нет. Если все точки в одном Подключении объекта переключить на новое расписание, то старое расписание просто исчезает, и его придется настраивать заново. Если старые расписания у объектов учета были разные, то групповая операция не поможет, придется вручную восстанавливать много расписаний.
Ещё мне сильно не нравится, что во время сеанса непрерывного опроса, если какой-то прибор не ответил, то программа просто перестает пытаться его опрашивать во всех последующих сеансах. А я ведь не просто так запустил непрерывный опрос, мне нужны показания!
Я полагаю, что вы неправильно поняли задачу, поставленную вот здесь:
Это необходимо нам для реализации оперативного контроля параметров.
Ваша реализация не позволяет вести оперативный контроль.
Полностью согласен со @Sly .
Вы реализовали непрерывный опрос текущих, как функцию, ломающую логику автоопроса. Если включил, непрерывный опрос, то по факту автоопрос выполняется не так, как настроен. Т.е. пользователь включает эту опцию и прочие опросы будут отложены, до обрыва канала или истечения максимальной продолжительности опроса. Причем последний параметр существует, вроде, для того, чтобы обрывать зависшие опросы, для меня не понятно, зачем вы связали эти разные понятия через 1 параметр.
Если Ваш совет сводится к тому, что нужно делать отдельное расписание автоопроса, то тогда это должно быть расписание именно опроса текущих, с указанием нужного интервала, которое будут включать и выключать по отдельности или групповой операцией. Это расписание тогда должно обеспечивать именно заданный интервал опроса и в явном виде. Текущая реализация не достигает цели - непрерывности опроса.
Вы реализовали непрерывный опрос текущих, как функцию, ломающую логику автоопроса.
Конечно автоопрос при непрерывном опросе будет вестись по-другому, а как иначе?
Обращаю внимание, что в исходном предложении никаких указаний на автоопрос нет. Предлагается только перезапускать опрос текущих не через указанный таймаут, а через период автоопроса, и я не склонен это отвергать. Это предложение ещё актуально, или мы ушли куда-то в другую сторону?
Мне бы и этого хватило.
Это предложение ещё актуально, или мы ушли куда-то в другую сторону?
Я не выдвигал дополнительных предложений. То, что вы сочли предложениями, на самом деле является аргументами.