@rpcbase/worker
v0.54.0
Published
When `registerQueueListener()` is started, the worker listens to MongoDB change streams for tenant DBs matching:
Readme
@rpcbase/worker
DB event tasks (on-insert|update|delete-<ModelName>)
When registerQueueListener() is started, the worker listens to MongoDB change streams for tenant DBs matching:
${APP_NAME}-<tenantId>-db
If a matching task handler exists (for example on-update-Product), it enqueues the job automatically.
Task name helper:
import { dbEventTaskName } from "@rpcbase/worker"
const taskName = dbEventTaskName("update", "Product")Payload shape for DB event tasks:
type DbEventTaskPayload<TDoc = unknown, TUpdateDescription = unknown> = {
tenantId: string
doc: TDoc
updateDescription?: TUpdateDescription
}Example:
import { dbEventTaskName, queue, type DbEventTaskPayload } from "@rpcbase/worker"
const onUpdateProduct = async (
payload: DbEventTaskPayload<{ _id?: unknown } & Record<string, unknown>>,
) => {
console.log(payload.tenantId, payload.doc?._id)
}
queue.registerTask(dbEventTaskName("update", "Product"), onUpdateProduct)