vona-module-a-broadcast 5.1.8 → 5.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -34,10 +34,42 @@ let ServiceBroadcast = class ServiceBroadcast extends BeanBase {
34
34
  await this.__sub?.disconnect();
35
35
  }
36
36
  emit(info) {
37
- info.callerId = this.__callerId;
38
- this.__pub.publish(this.__channelName, JSON.stringify(info));
37
+ const telemetry = this.$scope.telemetry.service.telemetry;
38
+ let infoWithCaller = {
39
+ ...info,
40
+ callerId: this.__callerId
41
+ };
42
+ const span = telemetry.enabled ? telemetry.startSpan(`broadcast publish ${String(info.broadcastName)}`, {
43
+ kind: 3,
44
+ attributes: {
45
+ 'messaging.operation.name': 'publish',
46
+ 'messaging.destination.name': String(info.broadcastName)
47
+ }
48
+ }) : undefined;
49
+ if (span) {
50
+ infoWithCaller = {
51
+ ...infoWithCaller,
52
+ options: {
53
+ ...info.options,
54
+ telemetry: telemetry.injectCarrier(telemetry.createContext(span))
55
+ }
56
+ };
57
+ }
58
+ this.__pub.publish(this.__channelName, JSON.stringify(infoWithCaller)).catch(err => {
59
+ if (span) telemetry.recordException(span, err);
60
+ this.app.handleError(err);
61
+ }).finally(() => span?.end());
39
62
  }
40
63
  async _performTask(info) {
64
+ const telemetry = this.$scope.telemetry.service.telemetry;
65
+ const parent = telemetry.extractCarrier(info.options?.telemetry);
66
+ const span = telemetry.enabled ? telemetry.startSpan(`broadcast receive ${String(info.broadcastName)}`, {
67
+ kind: 4,
68
+ attributes: {
69
+ 'messaging.operation.name': 'process',
70
+ 'messaging.destination.name': String(info.broadcastName)
71
+ }
72
+ }, parent) : undefined;
41
73
  // isEmitter
42
74
  const isEmitter = info.callerId === this.__callerId;
43
75
  // broadcast config
@@ -46,25 +78,41 @@ let ServiceBroadcast = class ServiceBroadcast extends BeanBase {
46
78
  // instance
47
79
  const instanceName = info.options?.instanceName;
48
80
  const instance = broadcastConfig?.instance !== false;
49
- // check
50
- if ((!isNil(instanceName) || instance) && !this.app.meta.appReady) {
51
- // ignore
52
- return;
81
+ try {
82
+ // check
83
+ if ((!isNil(instanceName) || instance) && !this.app.meta.appReady) {
84
+ // ignore
85
+ return;
86
+ }
87
+ const execute = () => this.bean.executor.newCtx(async () => {
88
+ const beanFullName = broadcastItem.beanOptions.beanFullName;
89
+ const beanInstance = this.app.bean._getBean(beanFullName);
90
+ return await beanInstance.execute(info.data, isEmitter);
91
+ }, {
92
+ dbInfo: info.options?.dbInfo,
93
+ locale: info.options?.locale,
94
+ tz: info.options?.tz,
95
+ instanceName,
96
+ extraData: {
97
+ ...info.options?.extraData,
98
+ state: {
99
+ ...info.options?.extraData?.state,
100
+ telemetry: span ? {
101
+ context: telemetry.createContext(span, parent),
102
+ span
103
+ } : undefined
104
+ }
105
+ },
106
+ transaction: broadcastConfig?.transaction,
107
+ instance
108
+ });
109
+ return await (span ? telemetry.withSpan(span, execute) : execute());
110
+ } catch (err) {
111
+ if (span) telemetry.recordException(span, err);
112
+ throw err;
113
+ } finally {
114
+ span?.end();
53
115
  }
54
- // execute
55
- return await this.bean.executor.newCtx(async () => {
56
- const beanFullName = broadcastItem.beanOptions.beanFullName;
57
- const beanInstance = this.app.bean._getBean(beanFullName);
58
- return await beanInstance.execute(info.data, isEmitter);
59
- }, {
60
- dbInfo: info.options?.dbInfo,
61
- locale: info.options?.locale,
62
- tz: info.options?.tz,
63
- instanceName,
64
- extraData: info.options?.extraData,
65
- transaction: broadcastConfig?.transaction,
66
- instance
67
- });
68
116
  }
69
117
  };
70
118
  ServiceBroadcast = __decorate([Service(), BeanInfo({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/service/broadcast.ts","../src/.metadata/this.ts","../src/monkey.ts","../src/main.ts","../src/.metadata/index.ts","../src/lib/beanBroadcastBase.ts","../src/lib/broadcast.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["ServiceBroadcast","BeanBase","constructor","args","__callerId","__channelName","__sub","__pub","__init__","app","bean","worker","id","getRedisClientKeyPrefix","redis","get","duplicate","subscribe","on","_channel","info","_performTask","JSON","parse","then","catch","err","handleError","disposePub","disconnect","disposeSub","emit","callerId","publish","stringify","isEmitter","broadcastItem","onion","broadcast","getOnionSlice","broadcastName","broadcastConfig","getOnionOptions","instanceName","options","instance","isNil","meta","appReady","executor","newCtx","beanFullName","beanOptions","beanInstance","_getBean","execute","data","dbInfo","locale","tz","extraData","transaction","__decorate","Service","__z_BeanInfo","module","__ThisModule__","Monkey","BeanSimple","appClose","scopeSelf","scope","service","appClosed","Main","moduleLoading","moduleLoaded","configLoaded","_config","ScopeModuleABroadcast","BeanScopeBase","Scope","BeanBroadcastBase","$scope","_prepareInfo","prepareGeneralInfo","$onionName","Broadcast","createBeanDecorator"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/service/broadcast.ts","../src/.metadata/this.ts","../src/monkey.ts","../src/main.ts","../src/.metadata/index.ts","../src/lib/beanBroadcastBase.ts","../src/lib/broadcast.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["ServiceBroadcast","BeanBase","constructor","args","__callerId","__channelName","__sub","__pub","__init__","app","bean","worker","id","getRedisClientKeyPrefix","redis","get","duplicate","subscribe","on","_channel","info","_performTask","JSON","parse","then","catch","err","handleError","disposePub","disconnect","disposeSub","emit","telemetry","$scope","service","infoWithCaller","callerId","span","enabled","startSpan","String","broadcastName","kind","attributes","undefined","options","injectCarrier","createContext","publish","stringify","recordException","finally","end","parent","extractCarrier","isEmitter","broadcastItem","onion","broadcast","getOnionSlice","broadcastConfig","getOnionOptions","instanceName","instance","isNil","meta","appReady","execute","executor","newCtx","beanFullName","beanOptions","beanInstance","_getBean","data","dbInfo","locale","tz","extraData","state","context","transaction","withSpan","__decorate","Service","__z_BeanInfo","module","__ThisModule__","Monkey","BeanSimple","appClose","scopeSelf","scope","appClosed","Main","moduleLoading","moduleLoaded","configLoaded","_config","ScopeModuleABroadcast","BeanScopeBase","Scope","BeanBroadcastBase","_prepareInfo","prepareGeneralInfo","$onionName","Broadcast","createBeanDecorator"],"mappings":";;;;;;AAUO,IAAMA,gBAAgB,GAAtB,MAAMA,gBAAiB,SAAQC,QAAQ,CAAA;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAA,IAAA,IAAA,CACpCC,UAAU,GAAA,MAAA;AAAA,IAAA,IAAA,CACVC,aAAa,GAAA,MAAA;AAAA,IAAA,IAAA,CACbC,KAAK,GAAA,MAAA;AAAA,IAAA,IAAA,CACLC,KAAK,GAAA,MAAA;AAAA,EAAA;AAEHC,EAAAA,QAAQA,GAAA;AAChB,IAAA,MAAMC,GAAG,GAAG,IAAI,CAACA,GAAG;IACpB,IAAI,CAACL,UAAU,GAAGK,GAAG,CAACC,IAAI,CAACC,MAAM,CAACC,EAAE;IACpC,IAAI,CAACP,aAAa,GAAGQ,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAACJ,GAAG,CAAC;AACnE,IAAA,IAAI,CAACF,KAAK,GAAGE,GAAG,CAACC,IAAI,CAACI,KAAK,CAACC,GAAG,CAAC,WAAW,CAAC,CAACC,SAAS,EAAE;AACxD,IAAA,IAAI,CAACV,KAAK,GAAGG,GAAG,CAACC,IAAI,CAACI,KAAK,CAACC,GAAG,CAAC,WAAW,CAAC,CAACC,SAAS,EAAE;AACxD,IAAA,IAAI,CAACV,KAAK,CAACW,SAAS,CAAC,IAAI,CAACZ,aAAa,EAAE,MAAK,CAAE,CAAC,CAAC;IAClD,IAAI,CAACC,KAAK,CAACY,EAAE,CAAC,SAAS,EAAE,CAACC,QAAQ,EAAEC,IAAI,KAAI;AAC1C,MAAA,IAAI,CAACC,YAAY,CAACC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC,CAAC,CAChCI,IAAI,CAAC,MAAK;AACT;AAAA,MAAA,CACD,CAAC,CACDC,KAAK,CAAEC,GAAU,IAAI;AACpB,QAAA,IAAI,CAACjB,GAAG,CAACkB,WAAW,CAACD,GAAG,CAAC;AAC3B,MAAA,CAAC,CAAC;AACN,IAAA,CAAC,CAAC;AACJ,EAAA;EAEO,MAAME,UAAUA,GAAA;AACrB,IAAA,MAAM,IAAI,CAACrB,KAAK,EAAEsB,UAAU,EAAE;AAChC,EAAA;EAEO,MAAMC,UAAUA,GAAA;AACrB,IAAA,MAAM,IAAI,CAACxB,KAAK,EAAEuB,UAAU,EAAE;AAChC,EAAA;EAEAE,IAAIA,CAAOX,IAAgC,EAAA;IACzC,MAAMY,SAAS,GAAG,IAAI,CAACC,MAAM,CAACD,SAAS,CAACE,OAAO,CAACF,SAAS;AACzD,IAAA,IAAIG,cAAc,GAAG;AACnB,MAAA,GAAGf,IAAI;MACPgB,QAAQ,EAAE,IAAI,CAAChC;KAChB;AACD,IAAA,MAAMiC,IAAI,GAAGL,SAAS,CAACM,OAAO,GAC1BN,SAAS,CAACO,SAAS,CAAC,CAAA,kBAAA,EAAqBC,MAAM,CAACpB,IAAI,CAACqB,aAAa,CAAC,EAAE,EAAE;AACrEC,MAAAA,IAAI,EAAE,CAAC;AACPC,MAAAA,UAAU,EAAE;AACV,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,4BAA4B,EAAEH,MAAM,CAACpB,IAAI,CAACqB,aAAa;AACxD;KACF,CAAC,GACFG,SAAS;AACb,IAAA,IAAIP,IAAI,EAAE;AACRF,MAAAA,cAAc,GAAG;AACf,QAAA,GAAGA,cAAc;AACjBU,QAAAA,OAAO,EAAE;UACP,GAAGzB,IAAI,CAACyB,OAAO;UACfb,SAAS,EAAEA,SAAS,CAACc,aAAa,CAACd,SAAS,CAACe,aAAa,CAACV,IAAI,CAAC;AACjE;OACF;AACH,IAAA;IACA,IAAI,CAAC9B,KAAK,CACPyC,OAAO,CAAC,IAAI,CAAC3C,aAAa,EAAEiB,IAAI,CAAC2B,SAAS,CAACd,cAAc,CAAC,CAAC,CAC3DV,KAAK,CAACC,GAAG,IAAG;MACX,IAAIW,IAAI,EAAEL,SAAS,CAACkB,eAAe,CAACb,IAAI,EAAEX,GAAG,CAAC;AAC9C,MAAA,IAAI,CAACjB,GAAG,CAACkB,WAAW,CAACD,GAAG,CAAC;IAC3B,CAAC,CAAC,CACDyB,OAAO,CAAC,MAAMd,IAAI,EAAEe,GAAG,EAAE,CAAC;AAC/B,EAAA;EAEA,MAAM/B,YAAYA,CAAOD,IAAgC,EAAA;IACvD,MAAMY,SAAS,GAAG,IAAI,CAACC,MAAM,CAACD,SAAS,CAACE,OAAO,CAACF,SAAS;IACzD,MAAMqB,MAAM,GAAGrB,SAAS,CAACsB,cAAc,CAAClC,IAAI,CAACyB,OAAO,EAAEb,SAAS,CAAC;AAChE,IAAA,MAAMK,IAAI,GAAGL,SAAS,CAACM,OAAO,GAC1BN,SAAS,CAACO,SAAS,CACjB,CAAA,kBAAA,EAAqBC,MAAM,CAACpB,IAAI,CAACqB,aAAa,CAAC,EAAE,EACjD;AACEC,MAAAA,IAAI,EAAE,CAAC;AACPC,MAAAA,UAAU,EAAE;AACV,QAAA,0BAA0B,EAAE,SAAS;AACrC,QAAA,4BAA4B,EAAEH,MAAM,CAACpB,IAAI,CAACqB,aAAa;AACxD;AACF,KAAA,EACDY,MAAM,CACP,GACDT,SAAS;AACb;IACA,MAAMW,SAAS,GAAGnC,IAAI,CAACgB,QAAQ,KAAK,IAAI,CAAChC,UAAU;AACnD;AACA,IAAA,MAAMoD,aAAa,GAAG,IAAI,CAAC9C,IAAI,CAAC+C,KAAK,CAACC,SAAS,CAACC,aAAa,CAACvC,IAAI,CAACqB,aAAa,CAAC;AACjF,IAAA,MAAMmB,eAAe,GAAG,IAAI,CAAClD,IAAI,CAAC+C,KAAK,CAACC,SAAS,CAACG,eAAe,CAACzC,IAAI,CAACqB,aAAa,CAAC;AACrF;AACA,IAAA,MAAMqB,YAAY,GAAG1C,IAAI,CAACyB,OAAO,EAAEiB,YAAY;AAC/C,IAAA,MAAMC,QAAQ,GAAGH,eAAe,EAAEG,QAAQ,KAAK,KAAK;IACpD,IAAI;AACF;AACA,MAAA,IAAI,CAAC,CAACC,KAAK,CAACF,YAAY,CAAC,IAAIC,QAAQ,KAAK,CAAC,IAAI,CAACtD,GAAG,CAACwD,IAAI,CAACC,QAAQ,EAAE;AACjE;AACA,QAAA;AACF,MAAA;AACA,MAAA,MAAMC,OAAO,GAAGA,MACd,IAAI,CAACzD,IAAI,CAAC0D,QAAQ,CAACC,MAAM,CACvB,YAAW;AACT,QAAA,MAAMC,YAAY,GAAGd,aAAa,CAACe,WAAW,CAACD,YAAY;QAC3D,MAAME,YAAY,GAChB,IAAI,CAAC/D,GAAG,CAACC,IAAI,CAAC+D,QAAQ,CAACH,YAAmB,CAC3C;QACD,OAAO,MAAME,YAAY,CAACL,OAAO,CAAC/C,IAAI,CAACsD,IAAI,EAAEnB,SAAS,CAAC;AACzD,MAAA,CAAC,EACD;AACEoB,QAAAA,MAAM,EAAEvD,IAAI,CAACyB,OAAO,EAAE8B,MAAM;AAC5BC,QAAAA,MAAM,EAAExD,IAAI,CAACyB,OAAO,EAAE+B,MAAM;AAC5BC,QAAAA,EAAE,EAAEzD,IAAI,CAACyB,OAAO,EAAEgC,EAAE;QACpBf,YAAY;AACZgB,QAAAA,SAAS,EAAE;AACT,UAAA,GAAG1D,IAAI,CAACyB,OAAO,EAAEiC,SAAS;AAC1BC,UAAAA,KAAK,EAAE;AACL,YAAA,GAAG3D,IAAI,CAACyB,OAAO,EAAEiC,SAAS,EAAEC,KAAK;YACjC/C,SAAS,EAAEK,IAAI,GACX;cAAE2C,OAAO,EAAEhD,SAAS,CAACe,aAAa,CAACV,IAAI,EAAEgB,MAAM,CAAC;AAAEhB,cAAAA;AAAI,aAAE,GACxDO;AACL;SACF;QACDqC,WAAW,EAAErB,eAAe,EAAEqB,WAAW;AACzClB,QAAAA;AACD,OAAA,CACF;AACH,MAAA,OAAO,OAAO1B,IAAI,GAAGL,SAAS,CAACkD,QAAQ,CAAC7C,IAAI,EAAE8B,OAAO,CAAC,GAAGA,OAAO,EAAE,CAAC;IACrE,CAAC,CAAC,OAAOzC,GAAG,EAAE;MACZ,IAAIW,IAAI,EAAEL,SAAS,CAACkB,eAAe,CAACb,IAAI,EAAEX,GAAG,CAAC;AAC9C,MAAA,MAAMA,GAAG;AACX,IAAA,CAAC,SAAS;MACRW,IAAI,EAAEe,GAAG,EAAE;AACb,IAAA;AACF,EAAA;;AAjIWpD,gBAAgB,GAAAmF,UAAA,CAAA,CAD5BC,OAAO,EAAE,EAAAC,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACG,EAAAtF,gBAAgB,CAkI5B;;AC5IM,MAAMuF,cAAc,GAAG,aAAa;;ACMrC,MAAOC,MAAO,SAAQC,UAAU,CAAA;EACpC,MAAMC,QAAQA,GAAA;IACZ,MAAMC,SAAS,GAAG,IAAI,CAAClF,GAAG,CAACmF,KAAK,CAACL,cAAc,CAAC;IAChD,MAAMI,SAAS,CAACzD,OAAO,CAACwB,SAAS,CAAC5B,UAAU,EAAE;AAChD,EAAA;EAEA,MAAM+D,SAASA,GAAA;IACb,MAAMF,SAAS,GAAG,IAAI,CAAClF,GAAG,CAACmF,KAAK,CAACL,cAAc,CAAC;IAChD,MAAMI,SAAS,CAACzD,OAAO,CAACwB,SAAS,CAAC9B,UAAU,EAAE;AAChD,EAAA;AACD;;ACZK,MAAOkE,IAAK,SAAQL,UAAU,CAAA;EAClC,MAAMM,aAAaA,GAAA,CAAI;EACvB,MAAMC,YAAYA,GAAA;AAChB;AACA,IAAA,IAAI,CAACtF,IAAI,CAAC+D,QAAQ,CAAC,+BAA+B,CAAC;AACrD,EAAA;AAEA,EAAA,MAAMwB,YAAYA,CAACC,OAAY,GAAG;AACnC;;ACyCM,IAAMC,qBAAqB,GAA3B,MAAMA,qBAAsB,SAAQC,aAAa,CAAA;AAA3CD,qBAAqB,GAAAhB,UAAA,CAAA,CADjCkB,KAAK,EAAE,EAAAhB,QAAA,CAAA;EAAAC,MAAA,EAAA;AAAA,CAAA,CAAA,CACK,EAAAa,qBAAqB,CAAyB;AAuB3D;;ACxEM,MAAOG,iBAAkC,SAAQrG,QAAQ,CAAA;AAC7D8B,EAAAA,IAAIA,CAAC2C,IAAW,EAAE7B,OAA+B,EAAA;IAC/C,OAAO,IAAI,CAACZ,MAAM,CAACyB,SAAS,CAACxB,OAAO,CAACwB,SAAS,CAAC3B,IAAI,CAAC,IAAI,CAACwE,YAAY,CAAC7B,IAAI,EAAE7B,OAAO,CAAC,CAAC;AACvF,EAAA;AAEQ0D,EAAAA,YAAYA,CAAC7B,IAAW,EAAE7B,OAA+B,EAAA;AAC/DA,IAAAA,OAAO,GAAG,IAAI,CAACZ,MAAM,CAACmC,QAAQ,CAAClC,OAAO,CAACkC,QAAQ,CAACoC,kBAAkB,CAAC3D,OAAO,CAAC;IAC3E,OAAO;MACLJ,aAAa,EAAE,IAAI,CAACgE,UAAmB;MACvC/B,IAAI;AACJ7B,MAAAA;KACD;AACH,EAAA;AACD;;ACbK,SAAU6D,SAASA,CAAC7D,OAAoC,EAAA;AAC5D,EAAA,OAAO8D,mBAAmB,CAAC,WAAW,EAAE9D,OAAO,CAAC;AAClD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/service/broadcast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAErF,qBACa,gBAAiB,SAAQ,QAAQ;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAQ;IAErB,SAAS,CAAC,QAAQ;IAkBL,UAAU;IAIV,UAAU;IAIvB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAKrC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;CAgC1D"}
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/service/broadcast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC,OAAO,KAAK,EAAqB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAErF,qBACa,gBAAiB,SAAQ,QAAQ;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAAQ;IAErB,SAAS,CAAC,QAAQ;IAkBL,UAAU;IAIV,UAAU;IAIvB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAiCrC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;CAiE1D"}
@@ -2,6 +2,11 @@ import type { OmitNever } from 'vona';
2
2
  import type { IGeneralInfoOptions } from 'vona-module-a-executor';
3
3
  import type { ServiceOnion } from 'vona-module-a-onion';
4
4
  export interface IBroadcastEmitOptions extends IGeneralInfoOptions {
5
+ telemetry?: {
6
+ version: 1;
7
+ traceparent?: string;
8
+ tracestate?: string;
9
+ };
5
10
  }
6
11
  export interface IBroadcastExecute<DATA = unknown> {
7
12
  execute(data?: DATA, isEmitter?: boolean): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/types/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;CAAG;AAErE,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO;IAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,aAAa,EAAE,MAAM,gBAAgB,CAAC;IACtC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;CAAG;AAEpC,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,SAAS;QACxB,SAAS,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;KAC3C;CACF;AAED,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,YAAY;QAC3B,SAAS,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;KACxC;IAED,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,KAAK,CAAC;KAClB;CACF"}
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/types/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,CAAC,CAAC;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO;IAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,aAAa,EAAE,MAAM,gBAAgB,CAAC;IACtC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;CAAG;AAEpC,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAiB,SAAS;QACxB,SAAS,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;KAC3C;CACF;AAED,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,YAAY;QAC3B,SAAS,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;KACxC;IAED,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,KAAK,CAAC;KAClB;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-a-broadcast",
3
- "version": "5.1.8",
4
- "gitHead": "3380f8c5d3989242b60dc2a34cbb330f74335cbe",
3
+ "version": "5.1.12",
4
+ "gitHead": "fac7768bb7db22ff0180dc59d711efba5b853ae7",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Vona Module"
@@ -29,7 +29,7 @@
29
29
  "tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
30
30
  "prepublishOnly": "npm run tsc:publish",
31
31
  "prepack": "clean-package",
32
- "postpack": "clean-package restore && npm run clean"
32
+ "postpack": "clean-package restore"
33
33
  },
34
34
  "devDependencies": {
35
35
  "clean-package": "^2.2.0",
@@ -38,6 +38,7 @@
38
38
  "title": "a-broadcast",
39
39
  "vonaModule": {
40
40
  "dependencies": {
41
+ "a-telemetry": "5.0.0",
41
42
  "a-worker": "5.0.0"
42
43
  },
43
44
  "onions": {
@@ -41,11 +41,54 @@ export class ServiceBroadcast extends BeanBase {
41
41
  }
42
42
 
43
43
  emit<DATA>(info: IBroadcastJobContext<DATA>) {
44
- info.callerId = this.__callerId;
45
- this.__pub.publish(this.__channelName, JSON.stringify(info));
44
+ const telemetry = this.$scope.telemetry.service.telemetry;
45
+ let infoWithCaller = {
46
+ ...info,
47
+ callerId: this.__callerId,
48
+ };
49
+ const span = telemetry.enabled
50
+ ? telemetry.startSpan(`broadcast publish ${String(info.broadcastName)}`, {
51
+ kind: 3,
52
+ attributes: {
53
+ 'messaging.operation.name': 'publish',
54
+ 'messaging.destination.name': String(info.broadcastName),
55
+ },
56
+ })
57
+ : undefined;
58
+ if (span) {
59
+ infoWithCaller = {
60
+ ...infoWithCaller,
61
+ options: {
62
+ ...info.options,
63
+ telemetry: telemetry.injectCarrier(telemetry.createContext(span)),
64
+ },
65
+ };
66
+ }
67
+ this.__pub
68
+ .publish(this.__channelName, JSON.stringify(infoWithCaller))
69
+ .catch(err => {
70
+ if (span) telemetry.recordException(span, err);
71
+ this.app.handleError(err);
72
+ })
73
+ .finally(() => span?.end());
46
74
  }
47
75
 
48
76
  async _performTask<DATA>(info: IBroadcastJobContext<DATA>) {
77
+ const telemetry = this.$scope.telemetry.service.telemetry;
78
+ const parent = telemetry.extractCarrier(info.options?.telemetry);
79
+ const span = telemetry.enabled
80
+ ? telemetry.startSpan(
81
+ `broadcast receive ${String(info.broadcastName)}`,
82
+ {
83
+ kind: 4,
84
+ attributes: {
85
+ 'messaging.operation.name': 'process',
86
+ 'messaging.destination.name': String(info.broadcastName),
87
+ },
88
+ },
89
+ parent,
90
+ )
91
+ : undefined;
49
92
  // isEmitter
50
93
  const isEmitter = info.callerId === this.__callerId;
51
94
  // broadcast config
@@ -54,27 +97,45 @@ export class ServiceBroadcast extends BeanBase {
54
97
  // instance
55
98
  const instanceName = info.options?.instanceName;
56
99
  const instance = broadcastConfig?.instance !== false;
57
- // check
58
- if ((!isNil(instanceName) || instance) && !this.app.meta.appReady) {
59
- // ignore
60
- return;
100
+ try {
101
+ // check
102
+ if ((!isNil(instanceName) || instance) && !this.app.meta.appReady) {
103
+ // ignore
104
+ return;
105
+ }
106
+ const execute = () =>
107
+ this.bean.executor.newCtx(
108
+ async () => {
109
+ const beanFullName = broadcastItem.beanOptions.beanFullName;
110
+ const beanInstance = <IBroadcastExecute<DATA>>(
111
+ this.app.bean._getBean(beanFullName as any)
112
+ );
113
+ return await beanInstance.execute(info.data, isEmitter);
114
+ },
115
+ {
116
+ dbInfo: info.options?.dbInfo,
117
+ locale: info.options?.locale,
118
+ tz: info.options?.tz,
119
+ instanceName,
120
+ extraData: {
121
+ ...info.options?.extraData,
122
+ state: {
123
+ ...info.options?.extraData?.state,
124
+ telemetry: span
125
+ ? { context: telemetry.createContext(span, parent), span }
126
+ : undefined,
127
+ },
128
+ },
129
+ transaction: broadcastConfig?.transaction,
130
+ instance,
131
+ },
132
+ );
133
+ return await (span ? telemetry.withSpan(span, execute) : execute());
134
+ } catch (err) {
135
+ if (span) telemetry.recordException(span, err);
136
+ throw err;
137
+ } finally {
138
+ span?.end();
61
139
  }
62
- // execute
63
- return await this.bean.executor.newCtx(
64
- async () => {
65
- const beanFullName = broadcastItem.beanOptions.beanFullName;
66
- const beanInstance = <IBroadcastExecute<DATA>>this.app.bean._getBean(beanFullName as any);
67
- return await beanInstance.execute(info.data, isEmitter);
68
- },
69
- {
70
- dbInfo: info.options?.dbInfo,
71
- locale: info.options?.locale,
72
- tz: info.options?.tz,
73
- instanceName,
74
- extraData: info.options?.extraData,
75
- transaction: broadcastConfig?.transaction,
76
- instance,
77
- },
78
- );
79
140
  }
80
141
  }
@@ -2,7 +2,13 @@ import type { OmitNever } from 'vona';
2
2
  import type { IGeneralInfoOptions } from 'vona-module-a-executor';
3
3
  import type { ServiceOnion } from 'vona-module-a-onion';
4
4
 
5
- export interface IBroadcastEmitOptions extends IGeneralInfoOptions {}
5
+ export interface IBroadcastEmitOptions extends IGeneralInfoOptions {
6
+ telemetry?: {
7
+ version: 1;
8
+ traceparent?: string;
9
+ tracestate?: string;
10
+ };
11
+ }
6
12
 
7
13
  export interface IBroadcastExecute<DATA = unknown> {
8
14
  execute(data?: DATA, isEmitter?: boolean): Promise<void>;