blob: 098377d855c530c884a91898b18762bc312f21f6 [file] [log] [blame]
package rocketmq
import ()
import (
"github.com/apache/incubator-rocketmq-externals/rocketmq-go/model"
"github.com/apache/incubator-rocketmq-externals/rocketmq-go/model/config"
"github.com/apache/incubator-rocketmq-externals/rocketmq-go/model/constant"
"github.com/apache/incubator-rocketmq-externals/rocketmq-go/service"
)
type RocketMQProducer interface {
Send(message *model.Message) (sendResult *model.SendResult, err error)
SendWithTimeout(message *model.Message, timeout int) (sendResult *model.SendResult, err error)
//SendAsync(message *model.Message) (sendResult *model.SendResult,err error)
//SendAsyncWithTimeout(message *model.Message) (sendResult *model.SendResult,err error)
//SendOneWay(message *model.Message) (sendResult *model.SendResult,err error)
}
type DefaultMQProducer struct {
producerGroup string
ProducerConfig *config.RocketMqProducerConfig
producerService service.ProducerService
}
func NewDefaultMQProducer(producerGroup string) (rocketMQProducer *DefaultMQProducer) {
rocketMQProducer = &DefaultMQProducer{
producerGroup: producerGroup,
ProducerConfig: config.NewProducerConfig(),
}
return
}
func (self *DefaultMQProducer) Send(message *model.Message) (sendResult *model.SendResult, err error) {
sendResult, err = self.producerService.SendDefaultImpl(message, constant.COMMUNICATIONMODE_SYNC, "", self.ProducerConfig.SendMsgTimeout)
return
}
func (self *DefaultMQProducer) SendWithTimeout(message *model.Message, timeout int64) (sendResult *model.SendResult, err error) {
sendResult, err = self.producerService.SendDefaultImpl(message, constant.COMMUNICATIONMODE_SYNC, "", timeout)
return
}