You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gojobs/jobs_gorm_redis.go

39 lines
975 B

package gojobs
import (
"context"
"github.com/go-redis/redis/v9"
"log"
)
// Publish 发布
// ctx 上下文
// channel 频道
// message 消息
func (j *JobsGorm) Publish(ctx context.Context, channel string, message interface{}) error {
publish, err := j.redisClient.Publish(ctx, channel, message).Result()
if j.config.logDebug == true {
log.Printf("[jobs.Publish] %s %s %v %s\n", channel, message, publish, err)
}
return err
}
type SubscribeResult struct {
err error
Message *redis.PubSub
}
// Subscribe 订阅
func (j *JobsGorm) Subscribe(ctx context.Context) SubscribeResult {
return SubscribeResult{
Message: j.redisClient.Subscribe(ctx, j.config.cornKeyPrefix+"_"+j.config.cornKeyCustom),
}
}
// PSubscribe 订阅,支持通配符匹配(ch_user_*)
func (j *JobsGorm) PSubscribe(ctx context.Context) SubscribeResult {
return SubscribeResult{
Message: j.redisClient.PSubscribe(ctx, j.config.cornKeyPrefix+"_"+j.config.cornKeyCustom+"_*"),
}
}