Параллельная работа с документом

  • Автор темы Автор темы sanch
  • Дата начала Дата начала
Как я понял, служебные доки - это таски. :)
Поэтому и сказал, что смысл одинаков. Вот если бы от шедульного агента избавиться... Но это фантастика. :)

Почему фантастика? Можно не шедульный.. по сохранению служебного дока запустить агент на сервере...
 
Если сервер один, то да. А если много?

? Не понял.. а в чем разница?

шопопало... каждый будет пускать агент... где паралельность?

Смысл паралельности - не в том, что бы данные попали в документ одновременно, а в том, что бы пользователи могли работать одновременно.. Так что тут никакой угрозы для паралельности нет.

Другое дело, что немного большая нагрузка на сервер...
 
Не понял.. а в чем разница?
Допустим у нас несколько серверов. На каждом будет по реплике документа. Тогда, при одновременной правке документа (т.е. одновременном запуске агента на серверах) мы получим конфликт.
 
Допустим у нас несколько серверов. На каждом будет по реплике документа. Тогда, при одновременной правке документа (т.е. одновременном запуске агента на серверах) мы получим конфликт.

Агент должен отрабатывать только на том сервере, где сохранили таск. Тобишь если документ сохранили на сервере1, то его обрабатывает агент сервера1 - это, между прочим, и для шедульного агента очень важное правило...
 
Агент должен отрабатывать только на том сервере, где сохранили таск. Тобишь если документ сохранили на сервере1, то его обрабатывает агент сервера1 - это, между прочим, и для шедульного агента очень важное правило...
Т.е. если два таска одновременно сохранены на двух разных серверах, то мы получим конфликт при репликации.
 
Не, вариант не sux.
А как раз то что нужно :rolleyes:

Что бы раскешировать док, то, как сказал Medevic, надо перевзять документ через view.
Можно базу перевзять через ReplicaID и там взять документ по униду, но это долго.
Я вторым способом профайлы раскешировал, т.к. через view без извратов профайл не взять.

Через getDatabase не вырастет каменный цвятог.
Через OpenByReplicaID вырастет.

Код:
Call doc.Save(True, True)
NID = doc.NoteID

Set agent = db.GetAgent("SomeAgent")
Call agent.Run(NID)

Set doc = Nothing
Set doc = db.GetDocumentByID(NID)

У меня вот такая конструкция вполне неплохо работает.
 
В качестве "полумеры" можно использовать свойство формы Merge conflicts.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab