代码拉取完成,页面将自动刷新
package producerconsumer
import (
"github.com/golang/protobuf/ptypes"
message "gitee.com/pangxianfei/multiapp/queue/protocol_buffers"
)
type queueRetry struct {
p producer
paramProtoByte []byte
hash string
}
func newQueryRetry(fq FailedQueuer) *queueRetry {
return &queueRetry{
p: producer{
topicName: fq.RetryTopic(),
channelName: fq.RetryChannel(),
retries: fq.RetryRetries(),
delay: fq.RetryDelay(),
},
paramProtoByte: fq.RetryParamProtoBytes(),
hash: fq.RetryHash(),
}
}
func (r *queueRetry) retry() error {
return push(r.p.topicName, r.p.channelName, &message.Message{
Hash: r.hash,
Param: r.paramProtoByte,
Retries: r.p.retries,
PushedAt: ptypes.TimestampNow(),
Delay: ptypes.DurationProto(r.p.delay),
Tried: 0,
})
}
func Forget(id uint) error {
// delete the retried failed queue
if err := failedProcessor.DeleteQueueById(id); err != nil {
return err
}
return nil
}
func Flush() error {
//@todo to be done
panic("need implements")
}
func Retry(id uint) error {
// find the failed queue
fq, err := failedProcessor.FailedQueueById(id)
if err != nil {
return err
}
// retry the failed queue
if err := newQueryRetry(fq).retry(); err != nil {
return err
}
// delete the retried failed queue
if err := failedProcessor.DeleteQueueById(id); err != nil {
return err
}
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。