MCPcopy Create free account
hub / github.com/SignTools/SignTools / TakeLastJob

Method TakeLastJob

src/storage/job_resolver.go:40–64  ·  view source on GitHub ↗
(writer io.Writer)

Source from the content-addressed store, hash-verified

38var ErrNotFound = errors.New("not found")
39
40func (r *JobResolver) TakeLastJob(writer io.Writer) error {
41 r.mu.Lock()
42 if r.appIdToSignJobMap.Len() < 1 {
43 r.mu.Unlock()
44 return errors.WithMessage(ErrNotFound, "sign job")
45 }
46
47 elem := r.appIdToSignJobMap.Back()
48 r.appIdToSignJobMap.Delete(elem.Key)
49 job := elem.Value.(*signJob)
50 returnJobId := uuid.NewString()
51 returnJob := ReturnJob{Id: returnJobId, Ts: time.Now(), AppId: job.appId}
52 r.idToReturnJobMap[returnJobId] = &returnJob
53 r.appIdToReturnJobMap[job.appId] = &returnJob
54 r.mu.Unlock()
55
56 if err := job.writeArchive(returnJobId, writer); err != nil {
57 r.mu.Lock()
58 delete(r.idToReturnJobMap, returnJobId)
59 delete(r.appIdToReturnJobMap, job.appId)
60 r.mu.Unlock()
61 return errors.WithMessage(err, "write archive")
62 }
63 return nil
64}
65
66func (r *JobResolver) Cleanup(timeout time.Duration) {
67 r.mu.Lock()

Callers 1

getLastJobFunction · 0.80

Calls 2

writeArchiveMethod · 0.80
DeleteMethod · 0.45

Tested by

no test coverage detected