mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-11 22:08:27 +00:00
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { queue, task } from "@trigger.dev/sdk";
|
|
import {
|
|
processEpisodeIngestion,
|
|
IngestBodyRequest,
|
|
type IngestEpisodePayload,
|
|
} from "~/jobs/ingest/ingest-episode.logic";
|
|
import { triggerSpaceAssignment } from "../spaces/space-assignment";
|
|
import { triggerSessionCompaction } from "../session/session-compaction";
|
|
import { bertTopicAnalysisTask } from "../bert/topic-analysis";
|
|
|
|
const ingestionQueue = queue({
|
|
name: "ingestion-queue",
|
|
concurrencyLimit: 1,
|
|
});
|
|
|
|
// Export for backwards compatibility
|
|
export { IngestBodyRequest };
|
|
|
|
// Register the Trigger.dev task
|
|
export const ingestTask = task({
|
|
id: "ingest-episode",
|
|
queue: ingestionQueue,
|
|
machine: "medium-2x",
|
|
run: async (payload: IngestEpisodePayload) => {
|
|
// Use common logic with Trigger-specific callbacks for follow-up jobs
|
|
return await processEpisodeIngestion(
|
|
payload,
|
|
// Callback for space assignment
|
|
async (params) => {
|
|
await triggerSpaceAssignment(params);
|
|
},
|
|
// Callback for session compaction
|
|
async (params) => {
|
|
await triggerSessionCompaction(params);
|
|
},
|
|
// Callback for BERT topic analysis
|
|
async (params) => {
|
|
await bertTopicAnalysisTask.trigger(params, {
|
|
queue: "bert-topic-analysis",
|
|
concurrencyKey: params.userId,
|
|
tags: [params.userId, "bert-analysis"],
|
|
});
|
|
},
|
|
);
|
|
},
|
|
});
|