|
УдалениеРегистрацииИзменений при частых обновлениях объекта. | ☑ | ||
---|---|---|---|---|
0
mvgfirst
06.06.16
✎
18:05
|
Помогите разобраться с элементарным.
Допустим есть справочник "Товары" и есть план обмена "ОбменССайтом" в котором этот справочник включен. И есть некая обработка - которая должна выгрузить изменения в файл. И удалить регистрацию изменений. Приблизительный алгоритм действий таков: 1) Запросом считываем список измененных элементов справочника "Товары" 2) Выгружаем их в файл 3) Удаляем изменения посредством УдалитьРегистрациюИзменений, в которую передаем по очереди элементы полученные в п.1 Пока все четко. Но я подумал, а что будет происходить если в промежутке времени между п.1 и п.3 какой-нибудь пользователь изменить один или несколько элементов справочника из числа тех что уже выбраны для выгрузки. По логике я не должен удалять их регистрацию. т.к. они должны быть выгружены повторно. Но как отследить этот момент? Можно конечно же выбирать не запросом, а через "ВыбратьИзменения" с указанием номера сообщения. Но я думаю это добавит лишних блокировок - чего не хотелось бы. Есть ли какие-нибудь иные варианты? |
|||
1
Fragster
гуру
06.06.16
✎
18:16
|
>я думаю это добавит лишних блокировок
а ты проверь |
|||
2
Cyberhawk
06.06.16
✎
18:22
|
Между пунктами 2 и 3 файл удалили - и привет. Не делай так.
|
|||
3
mehfk
06.06.16
✎
19:00
|
(2) Кто удалил?
|
|||
4
Fragster
гуру
06.06.16
✎
19:01
|
(3) черный администратор
|
|||
5
mehfk
06.06.16
✎
19:03
|
(4) Это который сидит и ждет появления файлов, чтобы их удалить, чтобы ТС-у жизнь медом не казалась?
|
|||
6
etc
06.06.16
✎
19:15
|
> По логике я не должен удалять их регистрацию. т.к. они должны быть выгружены повторно.
Логично |
|||
7
Serg_1960
06.06.16
✎
19:23
|
Зачем изобретать велосипед если уже есть план обмена?
|
|||
8
Serg_1960
06.06.16
✎
19:29
|
Формируешь сообщение обмена а потом "некая" обработка читает и конвертирет в формат твоего файла
|
|||
9
mvgfirst
06.06.16
✎
21:34
|
(7) а в чем собственно велосипед?
Я же написал, что использую План Обмена. |
|||
10
mvgfirst
06.06.16
✎
21:39
|
(1) а зачем мне проверять.. Тут и в других интернетиках написано что таблица изменений блокируется.
Да и как проверить, запустить в работу и дождаться пока посыпятся блокировки? |
|||
11
mvgfirst
06.06.16
✎
21:42
|
(2) а как делать?
|
|||
12
Cyberhawk
06.06.16
✎
22:11
|
(3) По невыясненной причине взорвался файловый сервер, куда скидывались сообщения обмена
(11) Снимать регистрацию в источнике после загрузки подтверждения успешности доставки в приемник |
|||
13
mvgfirst
07.06.16
✎
08:31
|
(12) Ну собственно это и понятно что снимать регистрацию надо после подтверждения.
Я не писал об этом потому что это никак не изменяет сути вопроса. Я ведь не спрашивал как гарантировать доставку сообщения обмена. Еще раз сформулирую вопрос. Как не удалить регистрацию объектов которые были изменены после получения списка измененных, но до удаления регистрации изменений. |
|||
14
mehfk
07.06.16
✎
08:49
|
(13) Не сношай мозг - делай через ВыбратьИзменения.
|
|||
15
mvgfirst
07.06.16
✎
08:59
|
Да уже и сам пришел к такому выводу. Что похоже это единственный вариант (если не изобретать свой велосипед с блекджеком и шлюхами)
|
|||
16
Serg_1960
07.06.16
✎
09:08
|
А теперь смотри (7) :)
При многопользовательском режиме работы, хочешь не хочешь, а приходится признавать приоритет механизмов платформы перед своими "альтернативными" алгоритмами. И использовать блокировки как единственный метод избежать возникновения коллизий :( |
|||
17
mvgfirst
07.06.16
✎
09:33
|
(16) я не ищу каких нибудь своих велосипедов.
Суть моего вопроса была - получить наиболее эффективный метод из имеющихся в системе. Т.е. я предполагал наличие еще каких-то механизмов платформы о которых лично я ничего не знаю. |
|||
18
Fragster
гуру
07.06.16
✎
10:30
|
(10) ну блокируется, и что? или у тебя выгрузка полтора часа работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |