Beispiel #1
0
func _BlockProcedure(jq, foq *Queue.Queue, lf interface{}, jdq, fdq *diskq.DiskQueue, persist bool) (mystruct.JOBINFO, error) {
	switch {
	case lf != nil:
		return lf.(mystruct.JOBINFO), nil
	case jq.Len() > 0:
		if persist {
			_, err := jdq.Get(false)
			if err != nil {
				return mystruct.JOBINFO{ID: -1, INFO: ""}, err
			}
		}
		jobInfo := jq.Pop()
		return jobInfo.(mystruct.JOBINFO), nil
	}
	return mystruct.JOBINFO{ID: -1, INFO: ""}, nil //no job to do,send a heartbeat job
}