move publish privilege to gorutine with retry if have some troubles
This commit is contained in:
parent
d645d50f6c
commit
f044fb553f
@ -16,6 +16,8 @@ import (
|
|||||||
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils"
|
"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils"
|
||||||
"penahub.gitlab.yandexcloud.net/backend/quiz/core.git/clients/auth"
|
"penahub.gitlab.yandexcloud.net/backend/quiz/core.git/clients/auth"
|
||||||
"penahub.gitlab.yandexcloud.net/backend/quiz/core.git/service"
|
"penahub.gitlab.yandexcloud.net/backend/quiz/core.git/service"
|
||||||
|
"penahub.gitlab.yandexcloud.net/backend/quiz/core.git/tools"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type App struct {
|
type App struct {
|
||||||
@ -50,7 +52,7 @@ type Options struct {
|
|||||||
CrtFile string `env:"CRT" default:"server.crt"`
|
CrtFile string `env:"CRT" default:"server.crt"`
|
||||||
KeyFile string `env:"KEY" default:"server.key"`
|
KeyFile string `env:"KEY" default:"server.key"`
|
||||||
PostgresCredentials string `env:"PG_CRED" default:"host=localhost port=5432 user=squiz password=Redalert2 dbname=squiz sslmode=disable"`
|
PostgresCredentials string `env:"PG_CRED" default:"host=localhost port=5432 user=squiz password=Redalert2 dbname=squiz sslmode=disable"`
|
||||||
HubAdminUrl string `env:"HUB_ADMIN_URL"`
|
HubAdminUrl string `env:"HUB_ADMIN_URL" default:"http://localhost:8001/"`
|
||||||
ServiceName string `env:"SERVICE_NAME" default:"squiz"`
|
ServiceName string `env:"SERVICE_NAME" default:"squiz"`
|
||||||
AuthServiceURL string `env:"AUTH_URL"`
|
AuthServiceURL string `env:"AUTH_URL"`
|
||||||
RedirectURL string `env:"REDIRECT_URL" default:"https://squiz.pena.digital"`
|
RedirectURL string `env:"REDIRECT_URL" default:"https://squiz.pena.digital"`
|
||||||
@ -112,10 +114,7 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co
|
|||||||
}
|
}
|
||||||
fiberClient := &fiber.Client{}
|
fiberClient := &fiber.Client{}
|
||||||
privilegeController := privilege.NewPrivilege(clientData, fiberClient)
|
privilegeController := privilege.NewPrivilege(clientData, fiberClient)
|
||||||
err = privilegeController.PublishPrivileges()
|
go tools.PublishPrivilege(privilegeController, 10, 5*time.Minute)
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Failed to publish privileges", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
encrypt := utils.NewEncrypt(options.PubKey, options.PrivKey)
|
encrypt := utils.NewEncrypt(options.PubKey, options.PrivKey)
|
||||||
app := fiber.New()
|
app := fiber.New()
|
||||||
|
23
tools/publishPriv.go
Normal file
23
tools/publishPriv.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package tools
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"penahub.gitlab.yandexcloud.net/backend/penahub_common/privilege"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func PublishPrivilege(privilegeController *privilege.Controller, count int, interval time.Duration) {
|
||||||
|
for try := 0; try < count; try++ {
|
||||||
|
err := privilegeController.PublishPrivileges()
|
||||||
|
if err == nil {
|
||||||
|
fmt.Println("Privileges published success")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Failed to publish privileges (try %d): %v\n", try, err)
|
||||||
|
|
||||||
|
time.Sleep(interval)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Failed to publish privileges after all trys")
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user