Merge branch 'feature/pdf-recognition' into test
This commit is contained in:
27
internal/storage/cache/pdf.go
vendored
Normal file
27
internal/storage/cache/pdf.go
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
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()
|
||||
}
|
||||
13
internal/storage/cache/user.go
vendored
13
internal/storage/cache/user.go
vendored
@@ -88,10 +88,6 @@ func SetUserEmailCode(ctx context.Context, email, code string) error {
|
||||
return RedisClient.Set(ctx, fmt.Sprintf(UserEmailCodePrefix, email), code, UserEmailCodeTTL).Err()
|
||||
}
|
||||
|
||||
func DeleteUserEmailCode(ctx context.Context, email string) error {
|
||||
return RedisClient.Del(ctx, fmt.Sprintf(UserEmailCodePrefix, email)).Err()
|
||||
}
|
||||
|
||||
func GetUserSendEmailLimit(ctx context.Context, email string) (int, error) {
|
||||
limit, err := RedisClient.Get(ctx, fmt.Sprintf(UserSendEmailLimit, email)).Result()
|
||||
if err != nil {
|
||||
@@ -104,13 +100,16 @@ func GetUserSendEmailLimit(ctx context.Context, email string) (int, error) {
|
||||
}
|
||||
|
||||
func SetUserSendEmailLimit(ctx context.Context, email string) error {
|
||||
key := fmt.Sprintf(UserSendEmailLimit, email)
|
||||
count, err := RedisClient.Incr(ctx, key).Result()
|
||||
count, err := RedisClient.Incr(ctx, fmt.Sprintf(UserSendEmailLimit, email)).Result()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if count > UserSendEmailLimitCount {
|
||||
return errors.New("send email limit")
|
||||
}
|
||||
return RedisClient.Expire(ctx, key, UserSendEmailLimitTTL).Err()
|
||||
return RedisClient.Expire(ctx, fmt.Sprintf(UserSendEmailLimit, email), UserSendEmailLimitTTL).Err()
|
||||
}
|
||||
|
||||
func DeleteUserEmailCode(ctx context.Context, email string) error {
|
||||
return RedisClient.Del(ctx, fmt.Sprintf(UserEmailCodePrefix, email)).Err()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user