9.6 KiB
Class: EventBusService
Can keep track of multiple subscribers to different events and run the subscribers when events happen. Events will run asynchronously.
Constructors
constructor
• new EventBusService(__namedParameters, config, singleton?)
Parameters
| Name | Type | Default value |
|---|---|---|
__namedParameters |
InjectedDependencies |
undefined |
config |
ConfigModule |
undefined |
singleton |
boolean |
true |
Defined in
packages/medusa/src/services/event-bus.ts:47
Properties
config_
• Protected Readonly config_: ConfigModule
Defined in
packages/medusa/src/services/event-bus.ts:33
cronHandlers_
• Protected Readonly cronHandlers_: Map<string | symbol, Subscriber<unknown>[]>
Defined in
packages/medusa/src/services/event-bus.ts:38
cronQueue_
• Protected Readonly cronQueue_: Bull
Defined in
packages/medusa/src/services/event-bus.ts:41
enqueue_
• Protected enqueue_: Promise<void>
Defined in
packages/medusa/src/services/event-bus.ts:45
logger_
• Protected Readonly logger_: Logger
Defined in
packages/medusa/src/services/event-bus.ts:35
manager_
• Protected Readonly manager_: EntityManager
Defined in
packages/medusa/src/services/event-bus.ts:34
observers_
• Protected Readonly observers_: Map<string | symbol, Subscriber<unknown>[]>
Defined in
packages/medusa/src/services/event-bus.ts:37
queue_
• Protected queue_: Bull
Defined in
packages/medusa/src/services/event-bus.ts:42
redisClient_
• Protected Readonly redisClient_: Redis
Defined in
packages/medusa/src/services/event-bus.ts:39
redisSubscriber_
• Protected Readonly redisSubscriber_: Redis
Defined in
packages/medusa/src/services/event-bus.ts:40
shouldEnqueuerRun
• Protected shouldEnqueuerRun: boolean
Defined in
packages/medusa/src/services/event-bus.ts:43
stagedJobRepository_
• Protected Readonly stagedJobRepository_: typeof StagedJobRepository
Defined in
packages/medusa/src/services/event-bus.ts:36
transactionManager_
• Protected transactionManager_: undefined | EntityManager
Defined in
packages/medusa/src/services/event-bus.ts:44
Methods
createCronJob
▸ createCronJob<T>(eventName, data, cron, handler): void
Registers a cron job.
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type | Description |
|---|---|---|
eventName |
string |
the name of the event |
data |
T |
the data to be sent with the event |
cron |
string |
the cron pattern |
handler |
Subscriber<unknown> |
the handler to call on each cron job |
Returns
void
void
Defined in
packages/medusa/src/services/event-bus.ts:323
cronWorker_
▸ cronWorker_<T>(job): Promise<unknown[]>
Handles incoming jobs.
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type | Description |
|---|---|---|
job |
Object |
The job object |
job.data |
Object |
- |
job.data.data |
T |
- |
job.data.eventName |
string |
- |
Returns
Promise<unknown[]>
resolves to the results of the subscriber calls.
Defined in
packages/medusa/src/services/event-bus.ts:296
emit
▸ emit<T>(eventName, data, options?): Promise<void | StagedJob>
Calls all subscribers when an event occurs.
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type | Description |
|---|---|---|
eventName |
string |
the name of the event to be process. |
data |
T |
the data to send to the subscriber. |
options |
EmitOptions |
options to add the job with |
Returns
Promise<void | StagedJob>
the job from our queue
Defined in
packages/medusa/src/services/event-bus.ts:188
enqueuer_
▸ enqueuer_(): Promise<void>
Returns
Promise<void>
Defined in
packages/medusa/src/services/event-bus.ts:230
registerCronHandler_
▸ Protected registerCronHandler_(event, subscriber): EventBusService
Adds a function to a list of event subscribers.
Parameters
| Name | Type | Description |
|---|---|---|
event |
string | symbol |
the event that the subscriber will listen for. |
subscriber |
Subscriber<unknown> |
the function to be called when a certain event happens. Subscribers must return a Promise. |
Returns
this
Defined in
packages/medusa/src/services/event-bus.ts:167
startEnqueuer
▸ startEnqueuer(): void
Returns
void
Defined in
packages/medusa/src/services/event-bus.ts:220
stopEnqueuer
▸ stopEnqueuer(): Promise<void>
Returns
Promise<void>
Defined in
packages/medusa/src/services/event-bus.ts:225
subscribe
▸ subscribe(event, subscriber): EventBusService
Adds a function to a list of event subscribers.
Parameters
| Name | Type | Description |
|---|---|---|
event |
string | symbol |
the event that the subscriber will listen for. |
subscriber |
Subscriber<unknown> |
the function to be called when a certain event happens. Subscribers must return a Promise. |
Returns
this
Defined in
packages/medusa/src/services/event-bus.ts:127
unsubscribe
▸ unsubscribe(event, subscriber): EventBusService
Adds a function to a list of event subscribers.
Parameters
| Name | Type | Description |
|---|---|---|
event |
string | symbol |
the event that the subscriber will listen for. |
subscriber |
Subscriber<unknown> |
the function to be called when a certain event happens. Subscribers must return a Promise. |
Returns
this
Defined in
packages/medusa/src/services/event-bus.ts:145
withTransaction
▸ withTransaction(transactionManager): EventBusService
Parameters
| Name | Type |
|---|---|
transactionManager |
any |
Returns
Defined in
packages/medusa/src/services/event-bus.ts:97
worker_
▸ worker_<T>(job): Promise<unknown[]>
Handles incoming jobs.
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type | Description |
|---|---|---|
job |
Object |
The job object |
job.data |
Object |
- |
job.data.data |
T |
- |
job.data.eventName |
string |
- |
Returns
Promise<unknown[]>
resolves to the results of the subscriber calls.