@@ -38,63 +38,3 @@ func (i *Invoker) HandleNewJob(c *gin.Context) {
3838 i .Mutex .Unlock () // We unlock mutex without defer because getStatus uses mutex
3939 connector .RespOK (c , i .getStatus ())
4040}
41-
42- func (i * Invoker ) initJob (c * gin.Context , job * Job ) bool {
43- var submission models.Submission
44- if err := i .TS .DB .WithContext (c ).Find (& submission , job .SubmitID ).Error ; err != nil {
45- if errors .Is (err , gorm .ErrRecordNotFound ) {
46- connector .RespErr (c , http .StatusBadRequest , "Submission %d not found" , job .SubmitID )
47- } else {
48- logger .Error ("Error while finding submission in db, error: %s" , err .Error ())
49- connector .RespErr (c , http .StatusInternalServerError , "DB Error" )
50- return false
51- }
52- }
53- job .Submission = & submission
54-
55- var problem models.Problem
56- if err := i .TS .DB .WithContext (c ).Find (& problem , job .Submission .ProblemID ).Error ; err != nil {
57- if errors .Is (err , gorm .ErrRecordNotFound ) {
58- connector .RespErr (c , http .StatusBadRequest , "Problem %d not found" , job .Submission .ProblemID )
59- } else {
60- logger .Error ("Error while finding problem in db, error: %s" , err .Error ())
61- connector .RespErr (c , http .StatusInternalServerError , "DB Error" )
62- return false
63- }
64- }
65- job .Problem = & problem
66- return true
67- }
68-
69- func (i * Invoker ) newCompileJob (c * gin.Context , job * Job ) {
70- i .Storage .Source .Lock (uint64 (job .Submission .ID ))
71- job .Defers = append (job .Defers , func () { i .Storage .Source .Unlock (uint64 (job .Submission .ID )) })
72-
73- i .JobQueue <- job
74- }
75-
76- func (i * Invoker ) newTestJob (c * gin.Context , job * Job ) bool {
77- if job .Test <= 0 || job .Test > job .Problem .TestsNumber {
78- connector .RespErr (c ,
79- http .StatusBadRequest ,
80- "%d test required, tests in problem %d are numbered from 1 to %d" ,
81- job .Test , job .Problem .ID , job .Problem .TestsNumber )
82- return false
83- }
84-
85- i .Storage .Binary .Lock (uint64 (job .Submission .ID ))
86- job .Defers = append (job .Defers , func () { i .Storage .Binary .Unlock (uint64 (job .Submission .ID )) })
87-
88- i .Storage .TestInput .Lock (uint64 (job .Problem .ID ), job .Test )
89- job .Defers = append (job .Defers , func () { i .Storage .TestInput .Unlock (uint64 (job .Problem .ID ), job .Test ) })
90-
91- i .Storage .TestAnswer .Lock (uint64 (job .Problem .ID ), job .Test )
92- job .Defers = append (job .Defers , func () { i .Storage .TestAnswer .Unlock (uint64 (job .Problem .ID ), job .Test ) })
93-
94- i .Storage .Checker .Lock (uint64 (job .Problem .ID ))
95- job .Defers = append (job .Defers , func () { i .Storage .Checker .Unlock (uint64 (job .Problem .ID )) })
96-
97- // TODO: interactor
98- i .JobQueue <- job
99- return true
100- }
0 commit comments