mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-11 09:38:27 +00:00
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { queue, task } from "@trigger.dev/sdk/v3";
|
|
import { logger } from "~/services/logger.service";
|
|
import {
|
|
processSpaceSummary,
|
|
type SpaceSummaryPayload,
|
|
} from "~/jobs/spaces/space-summary.logic";
|
|
|
|
export type { SpaceSummaryPayload };
|
|
|
|
export const spaceSummaryQueue = queue({
|
|
name: "space-summary-queue",
|
|
concurrencyLimit: 1,
|
|
});
|
|
|
|
export const spaceSummaryTask = task({
|
|
id: "space-summary",
|
|
queue: spaceSummaryQueue,
|
|
run: async (payload: SpaceSummaryPayload) => {
|
|
logger.info(`[Trigger.dev] Starting space summary task`, {
|
|
userId: payload.userId,
|
|
spaceId: payload.spaceId,
|
|
triggerSource: payload.triggerSource,
|
|
});
|
|
|
|
// Use common business logic
|
|
return await processSpaceSummary(payload);
|
|
},
|
|
});
|
|
|
|
// Helper function to trigger the task
|
|
export async function triggerSpaceSummary(payload: SpaceSummaryPayload) {
|
|
return await spaceSummaryTask.trigger(payload, {
|
|
queue: "space-summary-queue",
|
|
concurrencyKey: payload.userId,
|
|
tags: [payload.userId, payload.spaceId],
|
|
});
|
|
}
|