aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/taskqueue/queue.go
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-08-08 19:30:20 +0900
committernsfisis <nsfisis@gmail.com>2024-08-08 19:30:20 +0900
commit9e5500269746d3826382a6dec78f0e82cfda0d42 (patch)
treed8f15d4081132d6cfff3ea3b02f197b2d6bad700 /backend/taskqueue/queue.go
parent401a28944fc0408811aedadd1c3104e2e2d4d7fe (diff)
parent113c83b19acc58fbd46e8acdac67ff1a112d0d8c (diff)
downloadiosdc-japan-2024-albatross-9e5500269746d3826382a6dec78f0e82cfda0d42.tar.gz
iosdc-japan-2024-albatross-9e5500269746d3826382a6dec78f0e82cfda0d42.tar.zst
iosdc-japan-2024-albatross-9e5500269746d3826382a6dec78f0e82cfda0d42.zip
Merge branch 'feat/taskqueue'
Diffstat (limited to 'backend/taskqueue/queue.go')
-rw-r--r--backend/taskqueue/queue.go82
1 files changed, 80 insertions, 2 deletions
diff --git a/backend/taskqueue/queue.go b/backend/taskqueue/queue.go
index 53ec6d6..515a406 100644
--- a/backend/taskqueue/queue.go
+++ b/backend/taskqueue/queue.go
@@ -20,6 +20,84 @@ 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,
+ stdin string,
+ stdout string,
+) error {
+ task, err := newTaskRunTestcase(
+ gameID,
+ userID,
+ code,
+ submissionID,
+ testcaseID,
+ stdin,
+ stdout,
+ )
+ if err != nil {
+ return err
+ }
+ _, err = q.client.Enqueue(task)
+ return err
}