This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"forge.redroom.link/yves/meowlib"
|
||||
"forge.redroom.link/yves/meowlib/client"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
const maxRetriesPerServer = 3
|
||||
@@ -114,7 +115,6 @@ func attemptSendJob(job *client.SendJob) (int, error) {
|
||||
if err != nil {
|
||||
return -1, err
|
||||
}
|
||||
|
||||
// Ensure the retries slice is aligned with the servers slice
|
||||
for len(job.Retries) < len(job.Servers) {
|
||||
job.Retries = append(job.Retries, 0)
|
||||
@@ -126,10 +126,19 @@ func attemptSendJob(job *client.SendJob) (int, error) {
|
||||
}
|
||||
|
||||
for i, srv := range job.Servers {
|
||||
// Prepare for server
|
||||
var packedUsrMsg *meowlib.PackedUserMessage
|
||||
err := proto.Unmarshal(data, packedUsrMsg)
|
||||
if err != nil {
|
||||
// todo
|
||||
return -1, err
|
||||
}
|
||||
PackMessageForServer(packedUsrMsg, srv.GetUid())
|
||||
|
||||
if job.Retries[i] >= maxRetriesPerServer {
|
||||
continue // this server is exhausted
|
||||
}
|
||||
_, err := meowlib.HttpPostMessage(srv.Url, data, timeout)
|
||||
_, err = meowlib.HttpPostMessage(srv.Url, data, timeout)
|
||||
if err != nil {
|
||||
logger.Warn().Err(err).Str("url", srv.Url).Int("retry", job.Retries[i]+1).Msg("attemptSendJob: POST failed")
|
||||
job.Retries[i]++
|
||||
|
||||
Reference in New Issue
Block a user