Files
likedream/internal/queue/task.go
T

28 lines
645 B
Go

package queue
import (
"context"
"likedream-goframe/internal/redis"
"likedream-goframe/internal/utils"
"github.com/hibiken/asynq"
"github.com/samber/oops"
)
var globalClient *asynq.Client
func AddTask(ctx context.Context, task *asynq.Task, opts ...asynq.Option) *asynq.TaskInfo {
taskInfo, e := globalClient.EnqueueContext(ctx, task, opts...)
utils.OkOrPanic(e, oops.WithContext(ctx).With("taskType", task.Type(), "taskPayload", task.Payload()).Wrap)
return taskInfo
}
func InitClient(_ context.Context) {
globalClient = asynq.NewClientFromRedisClient(redis.GetClient())
}
func GetClient() *asynq.Client {
return globalClient
}