Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запуск фонового задания при записи документа

Запуск фонового задания при записи документа
Я
   ДНН
 
18.11.20 - 15:39
Какие могут быть проблемы, если запускать фоновое задание при записи документа? При записи документа нужно отправить http запрос, чтобы не выполнять это в транзакции записи вынес в фоновое задание. Есть ли смысл делать через промежуточную запись в регистр сведений, а потом регламентным заданием перебирать регистр? Запрос нужно отправить как можно быстрее.
   zippygrill
 
1 - 18.11.20 - 15:47
план обмена не предлагать?
   ДНН
 
2 - 18.11.20 - 15:49
(1) вопрос не выборе регистр сведений или план обмена, а в выборе отправлять http запрос сразу из обработчика ПриЗаписи через ФоновыеЗадания.Выполнить() или через промежуточную запись (хоть в регистр, хоть в план обмена)
   sergey yevsenya
 
3 - 18.11.20 - 15:51
через запись. хз какая там ошибка произойдет при отправке
   zippygrill
 
4 - 18.11.20 - 15:51
ну в принципе если это в фоне будет происходить, то мне кажется норм. Пользователь этого не заметит.
   ДНН
 
5 - 18.11.20 - 15:52
(3) ошибка не должна повлиять на запись, отправка запроса в любом случае в фоновом задании будет
   H A D G E H O G s
 
6 - 18.11.20 - 15:53
Норм, чебынет.
Вся типовая кишит эти мдацкими фоновыми и норм.
   ДенисЧ
 
7 - 18.11.20 - 15:53
Отправляй через фоновое.
В приЗаписи вообще что-то, связанное с внешними ресурсами - канделяброопасно
   H A D G E H O G s
 
8 - 18.11.20 - 15:54
Сделай только 

Если ОбщегоНазначенияИлиКактотам.РежимОтладки() Тогда
Выполнитьнефоново()
Иначе
Фоново();
КонецЕсли;

молодая поросль тебе спасибо скажет
   sergey yevsenya
 
9 - 18.11.20 - 15:54
(5) на запись не повлияет, но в случае ошибки ты не сможешь повторить отправку и вообще отследить, что была ошибка
   ДенисЧ
 
10 - 18.11.20 - 16:02
(8) Извращенец... ДлительныеОперации.ВыполнитьПроцедуру() и всё.
   mistеr
 
11 - 18.11.20 - 16:16
(0) Все зависит от конкретного значения "как можно быстрее". Если прям пипец как нужно, и терять эти сообшения нельзя, то поднять рядом прокси с очередью.
   Armando
 
12 - 19.11.20 - 00:24
   Cyberhawk
 
13 - 19.11.20 - 00:35
"нужно отправить как можно быстрее"// Если гарантия выполнения не нужна, то пожалуйста.

Иначе - через запись в регистр-очередь или регистрацию на узле (внутри транзакции).
   Cthulhu
 
14 - 19.11.20 - 00:41
Решал аналогичную задачу для бесшовной интеграции упп с до. при записи документа надо было отправлять в до через евонный веб-сервис (в зависимости от установленных значений спец.реквизитов) либо создание нового внутр.документа, либо поиск бизнес-процесса для уже созданного внутр.документа и выполнение в не каких-то задач. тоже без помещения в транзакцию - т.к. выполняется не так быстро, результат возможен и неудачный - тогда повторить просто, и т.п.
решал через запись очереди в независимый регистр сведений (с документом в измерении). в документе при надобе проверяется наличие задания по этому документу в очереди, его предварительное стирание при надобе, и т.д.
ну и регламентное задание с фоновым процессом который лопатит очередь и загоняет в до через евонный веб-сервис - синхронно, и если успех - то стирает очередную запись из рс, если ошибка - пишет в эту запись рс в реквизит (который можно при надобе диагностировать - в самом документе так и делается)...
взлетело, работает, все довольны.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.