28 lines
645 B
Go
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
|
|
}
|