add logging (#187)
This commit is contained in:
24
apps/web/src/server/queue/bullmq-context.ts
Normal file
24
apps/web/src/server/queue/bullmq-context.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { randomUUID } from "crypto";
|
||||
import { getChildLogger, withLogger } from "../logger/log";
|
||||
import { Job } from "bullmq";
|
||||
|
||||
export type TeamJob<T> = Job<T & { teamId?: number }>;
|
||||
|
||||
/**
|
||||
* Simple wrapper function for BullMQ worker jobs with team context
|
||||
*/
|
||||
export function createWorkerHandler<T>(
|
||||
handler: (job: TeamJob<T>) => Promise<void>
|
||||
) {
|
||||
return async (job: TeamJob<T>) => {
|
||||
return await withLogger(
|
||||
getChildLogger({
|
||||
teamId: job.data.teamId,
|
||||
queueId: job.id ?? randomUUID(),
|
||||
}),
|
||||
async () => {
|
||||
return await handler(job);
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user