|
Куда сохранить общую переменную с внешним подключением для доступа с разных модулей? | ☑ | ||
---|---|---|---|---|
0
pvase
01.10.21
✎
10:24
|
Задача такая: Создать подключение к базе данных один раз за сеанс и потом его использовать в разных модулях на сервере. База отдельная, база может быть как MS SQL, так и PostgreSQL. Подскажите как такое можно реализовать?
Зачем это надо? Каждый раз создавать подключение - очень много времени занимает. |
|||
1
ДенисЧ
01.10.21
✎
10:25
|
Никак.
|
|||
2
ДенисЧ
01.10.21
✎
10:26
|
Максимум - модуль с переиспользованием значений и проверкой/переподключением.
|
|||
3
pvase
01.10.21
✎
10:26
|
Только внешний источник?
|
|||
4
pvase
01.10.21
✎
10:27
|
Я про тот, что в метаданных определяется.
|
|||
5
ДенисЧ
01.10.21
✎
10:27
|
(3) Так он тоже не очень-то сохранит подключения.
Представь себе кластер из N серверов, между которыми будет бегать твой сеанс... |
|||
6
Guk
01.10.21
✎
10:27
|
(0) если у тебя какое-то сом-соединение, то его можно хранить во временном хранилище. только живет оно там не долго...
|
|||
7
TormozIT
гуру
01.10.21
✎
10:28
|
> Каждый раз создавать подключение - очень много времени занимает
Пробуй указать все параметры подключения явно - порт - протокол Часто при установке соединения происходит перебор всех возможных значений. |
|||
8
Василий Алибабаевич
01.10.21
✎
10:29
|
(0) Сохрани в глобальную переменную на клиенте. Как в БПО.
|
|||
9
Ненавижу 1С
гуру
01.10.21
✎
10:31
|
(8) точно, но клиент находится ХЗ где от той базы
|
|||
10
Василий Алибабаевич
01.10.21
✎
10:31
|
+ (8)
Врезка в модуль управляемого приложения из БПО " Перем глПодключаемоеОборудование Экспорт; // для кэширования на клиенте " внутри глПодключаемоеОборудование могут быть и натив и КОМ подключения. И вполне себе доступны из любой клиентской части. |
|||
11
Василий Алибабаевич
01.10.21
✎
10:33
|
(9) но клиент находится ХЗ где от той базы. И что?
|
|||
12
Garykom
гуру
01.10.21
✎
10:34
|
(0) только выносом наружу из 1С
|
|||
13
Garykom
гуру
01.10.21
✎
10:34
|
(12)+ особенность работы сервера 1С
|
|||
14
Guk
01.10.21
✎
10:34
|
(10) теперь попробуй достать эту переменную из серверного модуля...
|
|||
15
Guk
01.10.21
✎
10:35
|
+(14) о чем пишет автор...
|
|||
16
ДенисЧ
01.10.21
✎
10:36
|
О! Нужно написать микросервис (обязательно на GO), который будет хранить подключение.
|
|||
17
Garykom
гуру
01.10.21
✎
10:37
|
(16) это один из вариантов
лично я его применяю ибо он очень удобный, простой и шустрый |
|||
18
Guk
01.10.21
✎
10:37
|
короче, в (6) вариант абсолютно рабочий, у меня так нативная компонента для весов сидит и доступна из любых модулей программы, но её дергать не реже чем раз в 20 мин надо, иначе сдохнет...
|
|||
19
Garykom
гуру
01.10.21
✎
10:39
|
(18) решение очень стремное и сильно ограниченное
в случае кластера из нескольких серверов 1С или файловой упс |
|||
20
Мультук
гуру
01.10.21
✎
10:43
|
(0) Главное, чтобы несколько пользователей/фоновых и т.п. одновременно не начали общаться через это подключение
Как бы ему не поплохело от этого |
|||
21
Guk
01.10.21
✎
10:44
|
(20) что мешает хранить адрес подключения в параметрах сеанса? тогда такой проблемы не будет...
|
|||
22
Garykom
гуру
01.10.21
✎
10:46
|
(21) очередь как реализуешь?
|
|||
23
Guk
01.10.21
✎
10:47
|
(22) очередь из чего?...
|
|||
24
Ненавижу 1С
гуру
01.10.21
✎
10:53
|
(11) и доступа с клиента нет
|
|||
25
Garykom
гуру
01.10.21
✎
10:53
|
(23) для чего
для того "чтобы несколько пользователей/фоновых и т.п. одновременно" одно подключение юзали а очередь это дело разруливает |
|||
26
Garykom
гуру
01.10.21
✎
10:54
|
(25)+ в больших языках это называется пул соединений (1-много)
и пул клиентов может этот пул легко использовать не заботясь поднято ли и занято ли, просто время ответа меняется |
|||
27
Guk
01.10.21
✎
10:58
|
(25) автор пишет:
"Создать подключение к базе данных один раз за сеанс и потом его использовать" и где здесь про то, что это соединение одновременно должны пользовать несколько пользователей?... |
|||
28
Garykom
гуру
01.10.21
✎
11:02
|
(27) Хороший программист думает наперед и предвидит затыки
|
|||
29
Guk
01.10.21
✎
11:03
|
(28) ааа...
|
|||
30
Garykom
гуру
01.10.21
✎
11:03
|
(28)+ а плохому это не надо
ему надо взять "готовый модуль" написанный хорошим и тупо его юзать ну или слегка подучиться чтобы стать программистом получше |
|||
31
Guk
01.10.21
✎
11:09
|
(30) если хороший программист, в твоем понимании, это тот, кто делает задачу не соответствующую поставленной задаче, то по-моему это не хороший программист, а чудак какой-то, который попусту тратит время и деньги клиента/работодателя...
|
|||
32
pechkin
01.10.21
✎
11:14
|
(31) думаешь ему начальник такую задачу поставил?
|
|||
33
Garykom
гуру
01.10.21
✎
11:14
|
(31) а вот где надо остановиться в делании задачи это уже искусство с кучей опыта
говнокод тяп ляп и ХХП вполне допустимы на разовой задаче или для MVP если же долгоиграющий прод с вероятным превращением в легаси то решение задачи на низком уровне означает что некто уже навострил лыжи и после него хоть потоп |
|||
34
Garykom
гуру
01.10.21
✎
11:15
|
(33) *низком уровне = хреновом
|
|||
35
Garykom
гуру
01.10.21
✎
11:16
|
(33)+ хотя на практике часто "давай быстрей-быстрей" и заставляют говнокодить а потом удивляются техдолгу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |