mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-01-23 19:00:24 +08:00
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
// Package queue
|
||
// @Link https://github.com/bufanyun/hotgo
|
||
// @Copyright Copyright (c) 2023 HotGo CLI
|
||
// @Author Ms <133814250@qq.com>
|
||
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
||
package queue
|
||
|
||
import (
|
||
"github.com/gogf/gf/v2/util/gconv"
|
||
)
|
||
|
||
// Push 推送队列
|
||
func Push(topic string, data interface{}) (err error) {
|
||
q, err := InstanceProducer()
|
||
if err != nil {
|
||
return
|
||
}
|
||
mqMsg, err := q.SendMsg(topic, gconv.String(data))
|
||
ProducerLog(ctx, topic, mqMsg, err)
|
||
return
|
||
}
|
||
|
||
// DelayPush 推送延迟队列
|
||
// redis delay 传入 秒。如:10代表延迟10秒
|
||
// rocketmq delay 传入 延迟级别。如:2代表延迟5秒
|
||
// rocketmq reference delay level definition: 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
|
||
// rocketmq delay level starts from 1. for example, if we set param level=1, then the delay time is 1s.
|
||
func DelayPush(topic string, data interface{}, delay int64) (err error) {
|
||
q, err := InstanceProducer()
|
||
if err != nil {
|
||
return
|
||
}
|
||
mqMsg, err := q.SendDelayMsg(topic, gconv.String(data), delay)
|
||
ProducerLog(ctx, topic, mqMsg, err)
|
||
return
|
||
}
|