Имя: Пароль:
1C
1С v8
Время кэширования повторно возвращаемых значений в 8.3 уменьшено?
,
0 Chai Nic
 
10.07.14
10:10
Есть самописная конфигурация, которая по COM подключается к БП3.0, и периодически забирает оттуда некоторые данные. Для оптимизации получение COM-соединения было вынесено в виде функции в модуль с включенным "на время сеанса" повторным возвращением значений. В версии 8.2 это работало нормально - соединение кэшировалось, и обращение к нему было моментальным. Кэш сбрасывался через 20 минут неактивности, как и положено по документации.
После перехода на 8.3 кэш повторного возвращения сбрасывается намного раньше - где-то через 1 минуту. Это нормально? Можно ли как-то управлять временем кэширования?
1 H A D G E H O G s
 
10.07.14
10:55
(0) Нет и это печально.
2 Chai Nic
 
10.07.14
11:10
(1) И через временное хранилище в 8.3 теперь COM-объект не закэшируешь, а тут еще и кэширование средствами повторного возвращения значений урезали. Такой вот прогресс наоборот получается..
3 H A D G E H O G s
 
10.07.14
11:11
(2) ПодключитьОбработчикОжидания, который будет дергать кэш, не давая расслабить ему булки. Ну и я спрошу на партнерском.
4 Fragster
 
гуру
10.07.14
11:12
я делал просто фоновое задание и регламентное, которое следило за его живостью. в фоновом крутил в цикле паузу через пинг необходимое время. когда надо было - выполнял действия.
5 Fragster
 
гуру
10.07.14
11:12
(3) ссылку кинь
6 Fragster
 
гуру
10.07.14
11:12
(4) и это избавило от необходимости кэширования
7 ДенисЧ
 
10.07.14
11:14
Мда... К рукоблудству склоняют... ((
8 H A D G E H O G s
 
10.07.14
11:15
(4) Я нифига не понял.
9 Fragster
 
гуру
10.07.14
11:21
(8) условно:

Процедура ЭтоФоновоеЗадание()
  Перем Соединение;

  Соединение = УстановитьСоединение();
  Пока Истина Цикл
    Пауза();
    Если ПораЧтоТоДелать() Тогда
      ЧтоТоДелаем();
    КонецЕсли;
    ОбновляемРССЖивостью();
  КонецЦикла;
КонецПроцедуры

Процедура ЭтоРегламентноеЗадание()
  Если РССЖивостьюСвежий() Тогда
    Возврат;
  КонецЕсли;

  Если ФоновоеЗаданиеЕсть() Тогда
    ОтменяемЕго();
  КонецЕсли;
  
  ЗапускаемФЙоновоеЗадание();
КонецПроцедуры
10 Chai Nic
 
10.07.14
11:24
(3) Спасибо за совет. Вариант через дергание регламентным заданием работает)
11 H A D G E H O G s
 
10.07.14
11:25
(9) ГХМ. Это один, универсальный механизм?
12 H A D G E H O G s
 
10.07.14
11:25
(9) Механизм многопоточности?
13 Fragster
 
гуру
10.07.14
11:30
(12) не, многопоточность универсальным механизмом какая-то сложная получается, опять же с распределенными на несколько потоков транзакции надо разруливать как-то. пишу в случае необходимости неуниверсальные варианты.

постоянно висящие фоновые задания для того, чтобы сэкономить на времени старта не оправдали себя (по крайней мере у меня).

это монитор кластеров серверов - количество фоновых заданий по количеству наблюдаемых кластеров, да. в этом смысле многопоточность есть, но это скорее обычная многопользовательская работа.
14 Fragster
 
гуру
10.07.14
14:38
ух, что там на партнерском!
в кратце: "не нужно!" %)
15 H A D G E H O G s
 
10.07.14
14:39
(14) Толпа дятлов из франча начала псевдоумия разводить.
16 H A D G E H O G s
 
10.07.14
14:40
Интеллигенция, ёпт.