move app to app/ subdir
This commit is contained in:
31
app/src/server/tasks/defineTask.ts
Normal file
31
app/src/server/tasks/defineTask.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
// Import necessary dependencies
|
||||
import { quickAddJob, type Helpers, type Task } from "graphile-worker";
|
||||
import { env } from "~/env.mjs";
|
||||
|
||||
// Define the defineTask function
|
||||
function defineTask<TPayload>(
|
||||
taskIdentifier: string,
|
||||
taskHandler: (payload: TPayload, helpers: Helpers) => Promise<void>,
|
||||
) {
|
||||
const enqueue = async (payload: TPayload, runAt?: Date) => {
|
||||
console.log("Enqueuing task", taskIdentifier, payload);
|
||||
await quickAddJob({ connectionString: env.DATABASE_URL }, taskIdentifier, payload, { runAt });
|
||||
};
|
||||
|
||||
const handler = (payload: TPayload, helpers: Helpers) => {
|
||||
helpers.logger.info(`Running task ${taskIdentifier} with payload: ${JSON.stringify(payload)}`);
|
||||
return taskHandler(payload, helpers);
|
||||
};
|
||||
|
||||
const task = {
|
||||
identifier: taskIdentifier,
|
||||
handler: handler as Task,
|
||||
};
|
||||
|
||||
return {
|
||||
enqueue,
|
||||
task,
|
||||
};
|
||||
}
|
||||
|
||||
export default defineTask;
|
||||
Reference in New Issue
Block a user