11"use strict" ;
22
3- const { ServiceBroker } = require ( "moleculer" ) ;
3+ const {
4+ ServiceBroker,
5+ Errors : { MoleculerError }
6+ } = require ( "moleculer" ) ;
47const ChannelsMiddleware = require ( "../.." ) . Middleware ;
58
6- const deadServiceSchema = require ( "./dead.service" ) ;
7-
89let c = 1 ;
910
1011// Create broker
@@ -18,32 +19,39 @@ const broker = new ServiceBroker({
1819 adapter : process . env . ADAPTER || "redis://localhost:6379"
1920 } )
2021 ] ,
21- replCommands : [
22- {
23- command : "publish" ,
24- alias : [ "p" ] ,
25- async action ( broker , args ) {
26- const payload = {
27- id : 2 ,
28- name : "Jane Doe" ,
29- status : false ,
30- count : ++ c ,
31- pid : process . pid
32- } ;
22+ replOptions : {
23+ customCommands : [
24+ {
25+ command : "publish" ,
26+ alias : [ "p" ] ,
27+ async action ( broker , args ) {
28+ const payload = {
29+ id : 2 ,
30+ name : "Jane Doe" ,
31+ status : false ,
32+ count : ++ c ,
33+ pid : process . pid
34+ } ;
3335
34- await broker . sendToChannel ( "my.fail.topic" , payload , { key : "" + c } ) ;
36+ await broker . sendToChannel ( "my.fail.topic" , payload , {
37+ key : "" + c ,
38+ headers : { a : "123" }
39+ } ) ;
40+ }
3541 }
36- }
37- ]
42+ ]
43+ }
3844} ) ;
3945
4046broker . createService ( {
4147 name : "sub1" ,
4248 channels : {
4349 "my.fail.topic" : {
4450 group : "failgroup" ,
45- minIdleTime : 1000 ,
46- claimInterval : 500 ,
51+ redis : {
52+ minIdleTime : 1000 ,
53+ claimInterval : 500
54+ } ,
4755 maxRetries : 3 ,
4856 deadLettering : {
4957 enabled : true ,
@@ -52,11 +60,21 @@ broker.createService({
5260 } ,
5361 handler ( ) {
5462 this . logger . error ( "Ups! Something happened" ) ;
55- return Promise . reject ( new Error ( "Something happened" ) ) ;
63+ return Promise . reject (
64+ new MoleculerError ( "Something happened" , 123 , "SOMETHING_ERROR" , {
65+ errorInfo : "Additional error information" ,
66+ someOtherErrorData : 456 ,
67+ anotherErrorField : true ,
68+ finalField : null ,
69+ nested : { a : 1 , b : "two" , c : false }
70+ } )
71+ ) ;
5672 }
5773 }
5874 }
5975} ) ;
76+
77+ /**
6078broker.createService({
6179 name: "sub2",
6280 channels: {
@@ -68,15 +86,20 @@ broker.createService({
6886 }
6987 }
7088});
89+ */
7190
7291broker . createService ( {
7392 name : "sub3" ,
7493 channels : {
7594 DEAD_LETTER : {
95+ context : true ,
7696 group : "failgroup" ,
77- handler ( msg , raw ) {
78- this . logger . info ( "--> FAILED HANDLER <--" ) ;
79- this . logger . info ( msg ) ;
97+ handler ( ctx , raw ) {
98+ this . logger . info ( "--> FAILED HANDLER PARAMS <--" ) ;
99+ this . logger . info ( ctx . params ) ;
100+ this . logger . info ( "--> FAILED HANDLER HEADERS <--" ) ;
101+ this . logger . info ( ctx . headers ) ;
102+
80103 // Send a notification about the failure
81104
82105 this . logger . info ( "--> RAW (ENTIRE) MESSAGE <--" ) ;
0 commit comments