AMcoder - javascript, python, java, html, php, sql

գարնանային ինտեգրման նետում բացառություն հարաբերակցության id-ով

Ես խնդիր ունեմ խմբաքանակի մշակման հետ գարնանային ինտեգրման հետ: Սովորաբար բաժանարարից հետո բոլոր տարրին (Message) կհատկացվի correlation_id՝ Aggregator-ում ապագա խմբավորման համար, բայց խնդիրն այն է, որ երբ տարրը մշակելիս բացառություն է լինում (Message), կստեղծվի MeesageException, և correlation_id կորցրել.

Ես կարող եմ օգտագործել HeaderEnricher-ը correlation_id-ն ավելացնելու համար, բայց այն չի կարող կոշտ կոդավորվել, ենթադրում եմ, այլ իմաստուն դեպքում, եթե կան բազմաթիվ հարցումներ, միավորվեն, բաները խմբավորվեն միասին, և ամեն ինչ կխառնվի: Հիմնական պատճառն այն է, երբ բացառությունների զսպանակային ինտեգրումը չի կցում correlation_id... և թվում է, որ այն երբեք նորից չի ստացվի...

Aggregator-ը կբողոքի «CorrelationStrategy is failing»

Ինչպե՞ս վարվել սրա հետ: Ենթադրենք, իմ ակնկալիքը կարող է լինել խմբաքանակով 10 տվյալների կետ, և ես ուզում եմ պատասխանել {5-ը ձախողվել է, 5-ը անցնելը} կամ sth-ը:


Պատասխանները:


1

Երբ org.springframework.messaging.MessagingException-ը նետվում է Spring Integration բաղադրիչների կողմից, այն սովորաբար պարունակում է failedMessage հատկություն՝ նշելու requestMessage-ը, որն առաջացրել է խնդիրը:

Ձեզ համար անհրաժեշտ բոլոր վերնագրերը (correlationId, sequenceNumber, sequenceSize և այլն) գտնվում են հենց այդ հատկության մեջ:

Եթե ​​դուք պատրաստվում եք սխալների մշակման արդյունքը հետ ուղարկել ագրեգատորին, ապա պետք է պատճենեք վերնագրերը այդ failedMessageից նոր ստեղծված հաղորդագրության մեջ:

Framework-ը դա չի անում լռելյայնորեն, քանի որ ErrorMessage-ը լիովին առանձին հոսք է, և երաշխիք չկա, որ այն միշտ վերադառնում է հիմնական հոսքին, օրինակ. համախմբման համար։

Լրացուցիչ տեղեկություններ կարող եք տեսնել Սխալների կառավարում գլխում:

29.08.2016
  • Կարծում եմ՝ ստացա սա! Ես փորձեցի int:service-activator-ը միացնելու սխալի ալիքը, և հետ կանչելու մեթոդը վերցրու Message‹?› հաղորդագրությունը որպես մուտքագրում, այն իրականում message.getpayload.getFailedMessage()-ում: 30.08.2016
  • Իսկապես գնահատում եմ ձեր օգնությունը: 30.08.2016
  • ձախողված հաղորդագրությունը ներառում է նաև replyChannel, որը կարծես տարբերվում է սկզբնական ալիքից, երբ ես տպում եմ վերնագիրը և համեմատում այլ վավեր աշխատանքային հոսքի հետ: Պե՞տք է բացառե՞մ այն, թե՞ պարզապես կարող եմ ձախողված Message-ից բոլոր բաները վերագտնել վերնագրերի մեջ: 31.08.2016
  • երբ ես միավորում եմ սխալի հաղորդագրությունը վավեր ճյուղի հետ, ես կարող եմ ստեղծել հարմարեցված արդյունք, բայց ես ստանում եմ «Պատասխան» հաղորդագրությունը, բայց ստացող շարանը արդեն ստացել է պատասխան, և gateway.publish() վերադարձնում է զրոյական արդյունք: որոնք առաջացնում են սխալ: Ինչ-որ բան կա՞, որ բաց եմ թողել: 31.08.2016
  • Դա կախված է ձեր տրամաբանությունից: Եթե ​​դուք իսկապես մտադիր եք սխալն ամբողջությամբ փոխարինել նոր վավեր հաղորդագրությամբ, դուք անպայման պետք է դրանք բոլորը պատճենեք failedMessage-ից: 31.08.2016
  • Մ-մ-մ. Կարծում եմ, դուք պետք է անտեսեք errorChannel-ը կամ օգտագործեք այլ մոտեցում՝ փորձել-բռնել բացառությունը: Կարծես այլ SO հարց է՝ ձեր տրամաբանությունը ուսումնասիրելու համար: 31.08.2016
  • stackoverflow.com/questions/39256191/ սա մեկ 31.08.2016
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..