|
|
@@ -6,6 +6,7 @@ import (
|
|
|
"fmt"
|
|
|
"log"
|
|
|
"strings"
|
|
|
+ "time"
|
|
|
|
|
|
"wartank/pkg/components/safebool"
|
|
|
"wartank/pkg/types"
|
|
|
@@ -57,8 +58,19 @@ func ЗагрузитьВарБот(сервер types.ИСервер, логи
|
|
|
if err != nil {
|
|
|
return nil, fmt.Errorf("ЗагрузитьВарБот(): in make core for bot %q, err=\n\t%w", логин, err)
|
|
|
}
|
|
|
+ go sf.рестарт()
|
|
|
return sf, nil
|
|
|
+}
|
|
|
|
|
|
+// Каждые два часа перезапускает себя
|
|
|
+func (сам *ВарБот) рестарт() {
|
|
|
+ time.Sleep(time.Hour * 2)
|
|
|
+ сам.Закончить()
|
|
|
+ сам, ош := ЗагрузитьВарБот(сам.сервер, сам.конфиг.Логин_)
|
|
|
+ if ош != nil {
|
|
|
+ panic(fmt.Errorf("ВарБот.рестарт(): при загрузке своего тела, ош=\n\t%w", ош))
|
|
|
+ }
|
|
|
+ log.Printf("ВарБот.рестарт(): бот %q перезагружен\n", сам.конфиг.Логин_)
|
|
|
}
|
|
|
|
|
|
// НовВарБот -- возвращает новый WarBot
|