diff options
Diffstat (limited to 'backend/taskqueue/queue.go')
| -rw-r--r-- | backend/taskqueue/queue.go | 78 |
1 files changed, 76 insertions, 2 deletions
diff --git a/backend/taskqueue/queue.go b/backend/taskqueue/queue.go index 53ec6d6..b7d7381 100644 --- a/backend/taskqueue/queue.go +++ b/backend/taskqueue/queue.go @@ -20,6 +20,80 @@ func (q *Queue) Close() { q.client.Close() } -func (q *Queue) Enqueue(task *asynq.Task, opts ...asynq.Option) (*asynq.TaskInfo, error) { - return q.client.Enqueue(task, opts...) +func (q *Queue) EnqueueTaskCreateSubmissionRecord( + gameID int, + userID int, + code string, + codeSize int, +) error { + task, err := newTaskCreateSubmissionRecord( + gameID, + userID, + code, + codeSize, + ) + if err != nil { + return err + } + _, err = q.client.Enqueue(task) + return err +} + +func (q *Queue) EnqueueTaskCompileSwiftToWasm( + gameID int, + userID int, + code string, + submissionID int, +) error { + task, err := newTaskCompileSwiftToWasm( + gameID, + userID, + code, + submissionID, + ) + if err != nil { + return err + } + _, err = q.client.Enqueue(task) + return err +} + +func (q *Queue) EnqueueTaskCompileWasmToNativeExecutable( + gameID int, + userID int, + code string, + submissionID int, +) error { + task, err := newTaskCompileWasmToNativeExecutable( + gameID, + userID, + code, + submissionID, + ) + if err != nil { + return err + } + _, err = q.client.Enqueue(task) + return err +} + +func (q *Queue) EnqueueTaskRunTestcase( + gameID int, + userID int, + code string, + submissionID int, + testcaseID int, +) error { + task, err := newTaskRunTestcase( + gameID, + userID, + code, + submissionID, + testcaseID, + ) + if err != nil { + return err + } + _, err = q.client.Enqueue(task) + return err } |
