|   |   | 
| 
 | Запуск фонового задания при записи документа | ☑ | ||
|---|---|---|---|---|
| 0
    
        ДНН 18.11.20✎ 15:39 | 
        Какие могут быть проблемы, если запускать фоновое задание при записи документа? При записи документа нужно отправить http запрос, чтобы не выполнять это в транзакции записи вынес в фоновое задание. Есть ли смысл делать через промежуточную запись в регистр сведений, а потом регламентным заданием перебирать регистр? Запрос нужно отправить как можно быстрее.     | |||
| 1
    
        zippygrill 18.11.20✎ 15:47 | 
        план обмена не предлагать?     | |||
| 2
    
        ДНН 18.11.20✎ 15:49 | 
        (1) вопрос не выборе регистр сведений или план обмена, а в выборе отправлять http запрос сразу из обработчика ПриЗаписи через ФоновыеЗадания.Выполнить() или через промежуточную запись (хоть в регистр, хоть в план обмена)     | |||
| 3
    
        sergey yevsenya 18.11.20✎ 15:51 | 
        через запись. хз какая там ошибка произойдет при отправке     | |||
| 4
    
        zippygrill 18.11.20✎ 15:51 | 
        ну в принципе если это в фоне будет происходить, то мне кажется норм. Пользователь этого не заметит.     | |||
| 5
    
        ДНН 18.11.20✎ 15:52 | 
        (3) ошибка не должна повлиять на запись, отправка запроса в любом случае в фоновом задании будет     | |||
| 6
    
        H A D G E H O G s 18.11.20✎ 15:53 | 
        Норм, чебынет.
 Вся типовая кишит эти мдацкими фоновыми и норм. | |||
| 7
    
        ДенисЧ 18.11.20✎ 15:53 | 
        Отправляй через фоновое. 
 В приЗаписи вообще что-то, связанное с внешними ресурсами - канделяброопасно | |||
| 8
    
        H A D G E H O G s 18.11.20✎ 15:54 | 
        Сделай только 
 Если ОбщегоНазначенияИлиКактотам.РежимОтладки() Тогда Выполнитьнефоново() Иначе Фоново(); КонецЕсли; молодая поросль тебе спасибо скажет | |||
| 9
    
        sergey yevsenya 18.11.20✎ 15:54 | 
        (5) на запись не повлияет, но в случае ошибки ты не сможешь повторить отправку и вообще отследить, что была ошибка     | |||
| 10
    
        ДенисЧ 18.11.20✎ 16:02 | 
        (8) Извращенец... ДлительныеОперации.ВыполнитьПроцедуру() и всё.     | |||
| 11
    
        mistеr 18.11.20✎ 16:16 | 
        (0) Все зависит от конкретного значения "как можно быстрее". Если прям пипец как нужно, и терять эти сообшения нельзя, то поднять рядом прокси с очередью.     | |||
| 12
    
        Armando 19.11.20✎ 00:24 | ||||
| 13
    
        Cyberhawk 19.11.20✎ 00:35 | 
        "нужно отправить как можно быстрее" // Если гарантия выполнения не нужна, то пожалуйста.
 Иначе - через запись в регистр-очередь или регистрацию на узле (внутри транзакции). | |||
| 14
    
        Cthulhu 19.11.20✎ 00:41 | 
        Решал аналогичную задачу для бесшовной интеграции упп с до. при записи документа надо было отправлять в до через евонный веб-сервис (в зависимости от установленных значений спец.реквизитов) либо создание нового внутр.документа, либо поиск бизнес-процесса для уже созданного внутр.документа и выполнение в не каких-то задач. тоже без помещения в транзакцию - т.к. выполняется не так быстро, результат возможен и неудачный - тогда повторить просто, и т.п.
 решал через запись очереди в независимый регистр сведений (с документом в измерении). в документе при надобе проверяется наличие задания по этому документу в очереди, его предварительное стирание при надобе, и т.д. ну и регламентное задание с фоновым процессом который лопатит очередь и загоняет в до через евонный веб-сервис - синхронно, и если успех - то стирает очередную запись из рс, если ошибка - пишет в эту запись рс в реквизит (который можно при надобе диагностировать - в самом документе так и делается)... взлетело, работает, все довольны. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |