40 lines
772 B
Go
40 lines
772 B
Go
package client
|
|
|
|
import (
|
|
"sipro-mps/internal/config"
|
|
"sipro-mps/internal/tasks/types"
|
|
|
|
"github.com/hibiken/asynq"
|
|
)
|
|
|
|
var Client *asynq.Client
|
|
|
|
// InitClient initializes the Asynq client with the provided Redis configuration.
|
|
func InitClient(redisConfig config.RedisConfig) {
|
|
client := asynq.NewClient(asynq.RedisClientOpt{
|
|
Addr: redisConfig.Addr,
|
|
Password: redisConfig.Password,
|
|
})
|
|
Client = client
|
|
}
|
|
|
|
func CloseClient() {
|
|
if Client != nil {
|
|
if err := Client.Close(); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func EnqueueFetchProductsTask(taskType string, marketplaceId int) error {
|
|
task, err := types.NewFetchProductsTask(taskType, marketplaceId)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
_, err = Client.Enqueue(task)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|