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