Запись значений переменных из кэша в БД.

Avatar
  • обновлен
  • Отвечен

Добрый день.

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

Выглядит это примерно так:

//Latch - флаг события, Deviance - величина отклонения в ед. изм.

Mess:='МВВ мощн. М1 в зоне допуска. Отклн составило макс: '
+FloatToStrEx(GetMaxValueFromDB(GetTimeStamp(Latch),now(),Deviance),0)+' % ';
Log(esInfo, Mess);

Значения в сообщении равны нулю.

Предполагаю. что причина в том, что сервер не сразу переписывает значения в БД, а какое-то время хранит их в кэше. Соответственно, участок БД к которому я пытаюсь адресоваться может быть пуст на момент запуска скрипта.

Пробовал добавлять задержку, тогда более-менее начинает работать, однако хотелось бы сообщения выдавать в реальном времени.

Подскажите, есть ли какое-то другое решение?

Как Вы оцениваете обслуживание, которое получили?

Оценка удовлетворенности от Соломонов Максим Сергеевич 3 года назад

Добавьте комментарий о качестве обслуживания (необязательно):

Avatar
Цитата от Соломонов Максим Сергеевич

Насколько я понимаю в таком случае список должен быть безразмерным, т.к. неизвестна продолжительность периода, а код довольно сильно раздуется.

То есть способа решить задачу через обращение к БД нет?

Насколько я понимаю в таком случае список должен быть безразмерным, т.к. неизвестна продолжительность периода, а код довольно сильно раздуется.

Все верно, список будет безразмерным. Код увеличится не на много.

То есть способа решить задачу через обращение к БД нет

Почему нет. Он есть, Вы его применили. Просто надо учитывать что данные в БД сбрасываются не сразу а накапливаются в кэше (как Вы верно заметили), по этому в реальном времени "вытаскивать" значения из БД не получится. По этой причине мы и предложили как реализовать задачу другим методом, что бы Вы могли получать нужные Вам значения без задержек.