@@ -3,7 +3,7 @@ import { tasksTable } from "../db/schema"
33import { takeUniqueOrThrow } from "../utils"
44import { count , eq , desc , like , and } from "drizzle-orm"
55
6- export type TaskState = "pending " | "success" | "failed"
6+ export type TaskState = "running " | "success" | "failed" | "abandoned "
77
88class TasksRepository {
99 async getAll ( {
@@ -15,7 +15,7 @@ class TasksRepository {
1515 limit : number
1616 offset : number
1717 name : string | null
18- state ?: "success" | "pending " | "failure"
18+ state ?: "success" | "running " | "failure" | "abandoned "
1919 } ) {
2020 const whereCondition = name
2121 ? like ( tasksTable . name , `%${ name . toLowerCase ( ) } %` )
@@ -57,28 +57,35 @@ class TasksRepository {
5757 name : string
5858 worker : string
5959 startedAt : Date
60- args : Record < string , any >
60+ args : Array < any >
61+ finishedAt : Date | null
6162 kwargs : Record < string , any >
6263 executionTime : number | null
63- returnValue : Record < string , any > | null
64- finishedAt : Date | null
65- state : "success" | "pending" | "failure"
64+ returnValue : { return_value : any } | null
65+ state : "success" | "running" | "failure"
6666 } ) {
6767 return db . insert ( tasksTable ) . values ( values )
6868 }
6969
7070 async update (
7171 taskId : string ,
7272 values : {
73- state ?: "success" | "pending" | "failure"
7473 error ?: string | null
7574 executionTime ?: number
7675 finishedAt ?: Date | null
77- returnValue ?: object | null
76+ returnValue ?: { return_value : any } | null
77+ state ?: "success" | "running" | "failure" | "abandoned"
7878 }
7979 ) {
8080 return db . update ( tasksTable ) . set ( values ) . where ( eq ( tasksTable . id , taskId ) )
8181 }
82+
83+ async setAbandoned ( ) {
84+ return db
85+ . update ( tasksTable )
86+ . set ( { state : "abandoned" } )
87+ . where ( eq ( tasksTable . state , "running" ) )
88+ }
8289}
8390
8491export const tasksRepository = new TasksRepository ( )
0 commit comments