mirror of
https://github.com/yusing/godoxy.git
synced 2025-06-09 04:52:35 +02:00
updated autocert renew check logic
This commit is contained in:
parent
acdb324f7d
commit
c269bd04d3
1 changed files with 8 additions and 3 deletions
|
@ -154,16 +154,21 @@ func (p *Provider) ScheduleRenewal() {
|
|||
}
|
||||
go func() {
|
||||
task := task.GlobalTask("cert renew scheduler")
|
||||
ticker := time.NewTicker(5 * time.Second)
|
||||
defer ticker.Stop()
|
||||
defer task.Finish("cert renew scheduler stopped")
|
||||
|
||||
for {
|
||||
renewalTime := p.ShouldRenewOn()
|
||||
timer := time.NewTimer(time.Until(renewalTime))
|
||||
|
||||
select {
|
||||
case <-task.Context().Done():
|
||||
timer.Stop()
|
||||
return
|
||||
case <-ticker.C: // check every 5 seconds
|
||||
case <-timer.C:
|
||||
if err := p.renewIfNeeded(); err != nil {
|
||||
E.LogWarn("cert renew failed", err, &logger)
|
||||
// Retry after 1 hour on failure
|
||||
time.Sleep(time.Hour)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue