@@ -4,16 +4,20 @@ import (
44 jacfarm_client "cli_exploit_runner/internal/clients/jacfarm"
55 "context"
66 "log/slog"
7+ "time"
78
89 "github.com/jacute/prettylogger"
910)
1011
1112const senderSize = 50
13+ const sendPeriod = 5 * time .Second
1214
1315func (w * Worker ) runSender () {
1416 const op = "worker.startSender"
1517 log := w .log .With (slog .String ("op" , op ))
1618
19+ timer := time .NewTimer (sendPeriod )
20+ defer timer .Stop ()
1721 flagBuffer := make ([]* jacfarm_client.ServiceFlag , 0 , senderSize )
1822
1923 for {
@@ -28,17 +32,32 @@ func (w *Worker) runSender() {
2832 err := w .client .SendFlags (context .Background (), flagBuffer )
2933 if err != nil {
3034 log .Error ("error sending flags" , prettylogger .Err (err ))
35+ } else {
36+ log .Info ("flags send successfully" , slog .Int ("flags_count" , len (flagBuffer )), slog .Any ("first_flags" , flagBuffer [:5 ]))
3137 }
3238 }
3339 return
3440 }
3541 }
42+ case <- timer .C :
43+ if len (flagBuffer ) > 0 {
44+ err := w .client .SendFlags (context .Background (), flagBuffer )
45+ if err != nil {
46+ log .Error ("error sending flags" , prettylogger .Err (err ))
47+ } else {
48+ log .Info ("flags send successfully" , slog .Int ("flags_count" , len (flagBuffer )), slog .Any ("first_flags" , flagBuffer [:5 ]))
49+ }
50+ flagBuffer = flagBuffer [:0 ]
51+ }
52+ timer .Reset (sendPeriod )
3653 case flags := <- w .flagQueue :
3754 flagBuffer = append (flagBuffer , flags ... )
3855 if len (flagBuffer ) >= senderSize {
3956 err := w .client .SendFlags (context .Background (), flagBuffer )
4057 if err != nil {
4158 log .Error ("error sending flags" , prettylogger .Err (err ))
59+ } else {
60+ log .Info ("flags send successfully" , slog .Int ("flags_count" , len (flagBuffer )), slog .Any ("first_flags" , flagBuffer [:5 ]))
4261 }
4362 flagBuffer = flagBuffer [:0 ]
4463 }
0 commit comments