Skip to content
Snippets Groups Projects

move ticker creation to commit

Merged Ghost User requested to merge move-ticker-creation into develop
1 file
+ 11
10
Compare changes
  • Side-by-side
  • Inline
+ 11
10
@@ -117,26 +117,27 @@ func stateManager(ch *Change, timeout time.Duration) (chan<- ppb.Change_State, <
stateOut := make(chan ppb.Change_State)
stateRequest := make(chan bool)
errChan := make(chan error)
ticker := time.NewTicker(timeout)
// create ticker and make it wait for 1 week
// workaround for delayed ticker start and ugly housekeeping
ticker := time.NewTicker(time.Hour * 7 * 24)
go func() {
state := ppb.Change_PENDING
for {
select {
case <-ticker.C:
// only roll back committed changes
if state == ppb.Change_COMMITTED {
err := ch.callback(ch.intendedState, ch.previousState)
if err != nil {
state = ppb.Change_INCONSISTENT
errChan <- err
}
errChan <- fmt.Errorf("change %v timed out", ch.cuid)
break
err := ch.callback(ch.intendedState, ch.previousState)
if err != nil {
state = ppb.Change_INCONSISTENT
errChan <- err
}
errChan <- fmt.Errorf("change %v timed out", ch.cuid)
break
case s := <-stateIn:
switch s {
case ppb.Change_COMMITTED:
// reset ticker to enable activate the change timeout
ticker.Reset(timeout)
err := ch.callback(ch.previousState, ch.intendedState)
if err != nil {
state = ppb.Change_INCONSISTENT
Loading