package cache import ( "context" "strconv" ) const ( PDFRecognitionTaskQueue = "pdf_recognition_queue" PDFRecognitionDistLock = "pdf_recognition_dist_lock" ) func PushPDFTask(ctx context.Context, taskID int64) (int64, error) { return RedisClient.LPush(ctx, PDFRecognitionTaskQueue, taskID).Result() } func PopPDFTask(ctx context.Context) (int64, error) { result, err := RedisClient.BRPop(ctx, 0, PDFRecognitionTaskQueue).Result() if err != nil { return 0, err } return strconv.ParseInt(result[1], 10, 64) } func GetPDFDistributedLock(ctx context.Context) (bool, error) { return RedisClient.SetNX(ctx, PDFRecognitionDistLock, "locked", DefaultLockTimeout).Result() }