Запись значений переменных из кэша в БД.
Добрый день.
Пытаюсь реализовать скрипт, который при возврате значения переменной в зону допуска будет выводить в журнал событие с максимальным значением отклонения переменной, за период пока она была вне допуска.
Выглядит это примерно так:
//Latch - флаг события, Deviance - величина отклонения в ед. изм.
Mess:='МВВ мощн. М1 в зоне допуска. Отклн составило макс: '
+FloatToStrEx(GetMaxValueFromDB(GetTimeStamp(Latch),now(),Deviance),0)+' % ';
Log(esInfo, Mess);
Значения в сообщении равны нулю.
Предполагаю. что причина в том, что сервер не сразу переписывает значения в БД, а какое-то время хранит их в кэше. Соответственно, участок БД к которому я пытаюсь адресоваться может быть пуст на момент запуска скрипта.
Пробовал добавлять задержку, тогда более-менее начинает работать, однако хотелось бы сообщения выдавать в реальном времени.
Подскажите, есть ли какое-то другое решение?
Как Вы оцениваете обслуживание, которое получили?
Оценка удовлетворенности от Соломонов Максим Сергеевич 3 года назад
Добавьте комментарий о качестве обслуживания (необязательно):
Насколько я понимаю в таком случае список должен быть безразмерным, т.к. неизвестна продолжительность периода, а код довольно сильно раздуется.
То есть способа решить задачу через обращение к БД нет?
Все верно, список будет безразмерным. Код увеличится не на много.
Почему нет. Он есть, Вы его применили. Просто надо учитывать что данные в БД сбрасываются не сразу а накапливаются в кэше (как Вы верно заметили), по этому в реальном времени "вытаскивать" значения из БД не получится. По этой причине мы и предложили как реализовать задачу другим методом, что бы Вы могли получать нужные Вам значения без задержек.