Таймер ожидает до времени срабатывания событий START и STOP используя отсчет по системным часам, которые неизбежно имеют некоторую неточность. Если в процессе ожидания выполнится синхронизация системного времени с NTP-сервером, то окончится окончание (по локальным часам) уже не точно в заданное время, а немного раньше или позже. В примере ниже событие STOP пришло на несколько миллисекунд раньше, чем нужно, в результате тут же снова незапланированно сработало START (cancelAhead = 1 минута).
2024-04-15T09:59:59.559+0300 INFO timer start trading session, remaining time = 8h39m59.4400182s
2024-04-15T09:59:59.559+0300 DEBUG buy got event = 1 (investgo.START)
2024-04-15T09:59:59.561+0300 INFO buy MOEX trade session started!
...
2024-04-15T18:38:58.681+0300 DEBUG buy got event = 2 (investgo.STOP)
2024-04-15T18:38:58.681+0300 INFO buy MOEX trade session ends
...
2024-04-15T18:38:58.714+0300 INFO timer start trading session, remaining time = 1m0.2852115s
2024-04-15T18:38:58.714+0300 DEBUG buy got event = 1 (investgo.START)
2024-04-15T18:38:58.715+0300 INFO buy MOEX trade session started!
Таймер ожидает до времени срабатывания событий START и STOP используя отсчет по системным часам, которые неизбежно имеют некоторую неточность. Если в процессе ожидания выполнится синхронизация системного времени с NTP-сервером, то окончится окончание (по локальным часам) уже не точно в заданное время, а немного раньше или позже. В примере ниже событие STOP пришло на несколько миллисекунд раньше, чем нужно, в результате тут же снова незапланированно сработало START (cancelAhead = 1 минута).
Пулл реквест для исправления данного бага https://github.com/RussianInvestments/invest-api-go-sdk/pull/15