mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2024-12-22 00:36:41 +02:00
сделал func ping_go()
This commit is contained in:
parent
a3e7fe06a6
commit
df086bec0b
@ -3,13 +3,16 @@ package grpc_client
|
|||||||
import (
|
import (
|
||||||
"github.com/ManyakRus/starter/contextmain"
|
"github.com/ManyakRus/starter/contextmain"
|
||||||
"github.com/ManyakRus/starter/log"
|
"github.com/ManyakRus/starter/log"
|
||||||
|
"github.com/ManyakRus/starter/port_checker"
|
||||||
"github.com/ManyakRus/starter/stopapp"
|
"github.com/ManyakRus/starter/stopapp"
|
||||||
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_proto"
|
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SettingsINI struct {
|
type SettingsINI struct {
|
||||||
@ -20,8 +23,15 @@ type SettingsINI struct {
|
|||||||
var Settings SettingsINI
|
var Settings SettingsINI
|
||||||
|
|
||||||
var Conn *grpc.ClientConn
|
var Conn *grpc.ClientConn
|
||||||
|
|
||||||
var Client grpc_proto.SyncServiceClient
|
var Client grpc_proto.SyncServiceClient
|
||||||
|
|
||||||
|
// mutexReconnect - защита от многопоточности Reconnect()
|
||||||
|
var mutexReconnect = &sync.Mutex{}
|
||||||
|
|
||||||
|
// NeedReconnect - флаг необходимости переподключения
|
||||||
|
var NeedReconnect bool
|
||||||
|
|
||||||
func Connect() {
|
func Connect() {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
@ -77,6 +87,9 @@ func Start() {
|
|||||||
stopapp.GetWaitGroup_Main().Add(1)
|
stopapp.GetWaitGroup_Main().Add(1)
|
||||||
go WaitStop()
|
go WaitStop()
|
||||||
|
|
||||||
|
stopapp.GetWaitGroup_Main().Add(1)
|
||||||
|
go ping_go()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func CloseConnection() {
|
func CloseConnection() {
|
||||||
@ -104,3 +117,35 @@ func IsRecordNotFound(err error) bool {
|
|||||||
|
|
||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ping_go - делает пинг каждые 60 секунд, и реконнект
|
||||||
|
func ping_go() {
|
||||||
|
|
||||||
|
ticker := time.NewTicker(60 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
|
||||||
|
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
|
||||||
|
|
||||||
|
//бесконечный цикл
|
||||||
|
loop:
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-contextmain.GetContext().Done():
|
||||||
|
log.Warn("Context app is canceled. grpc_client.ping")
|
||||||
|
break loop
|
||||||
|
case <-ticker.C:
|
||||||
|
err := port_checker.CheckPort_err(Settings.SYNC_SERVICE_HOST, Settings.SYNC_SERVICE_PORT)
|
||||||
|
//log.Debug("ticker, ping err: ", err) //удалить
|
||||||
|
if err != nil {
|
||||||
|
NeedReconnect = true
|
||||||
|
log.Warn("grpc_client CheckPort(", addr, ") error: ", err)
|
||||||
|
} else if NeedReconnect == true {
|
||||||
|
log.Warn("grpc_client CheckPort(", addr, ") OK. Start Reconnect()")
|
||||||
|
NeedReconnect = false
|
||||||
|
Connect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stopapp.GetWaitGroup_Main().Done()
|
||||||
|
}
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
//Файл создан автоматически кодогенератором crud_generator
|
||||||
|
//Не изменяйте ничего здесь.
|
||||||
|
|
||||||
package nrpc_client
|
package nrpc_client
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/ManyakRus/starter/contextmain"
|
"github.com/ManyakRus/starter/contextmain"
|
||||||
"github.com/ManyakRus/starter/log"
|
"github.com/ManyakRus/starter/log"
|
||||||
|
"github.com/ManyakRus/starter/port_checker"
|
||||||
"github.com/ManyakRus/starter/stopapp"
|
"github.com/ManyakRus/starter/stopapp"
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/api/grpc_proto"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/constants"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_proto"
|
"sync"
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
@ -26,6 +31,12 @@ var Conn *nats.Conn
|
|||||||
// Client - подключение к клиенту NRPC
|
// Client - подключение к клиенту NRPC
|
||||||
var Client *grpc_proto.Sync_serviceClient
|
var Client *grpc_proto.Sync_serviceClient
|
||||||
|
|
||||||
|
// mutexReconnect - защита от многопоточности Reconnect()
|
||||||
|
var mutexReconnect = &sync.Mutex{}
|
||||||
|
|
||||||
|
// NeedReconnect - флаг необходимости переподключения
|
||||||
|
var NeedReconnect bool
|
||||||
|
|
||||||
// Connect - подключается к NATS
|
// Connect - подключается к NATS
|
||||||
func Connect() {
|
func Connect() {
|
||||||
var err error
|
var err error
|
||||||
@ -63,7 +74,6 @@ func FillSettings() {
|
|||||||
Settings.NATS_PORT = os.Getenv("BUS_LOCAL_PORT")
|
Settings.NATS_PORT = os.Getenv("BUS_LOCAL_PORT")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if Settings.NATS_HOST == "" {
|
if Settings.NATS_HOST == "" {
|
||||||
log.Panic("Need fill BUS_LOCAL_HOST ! in OS Environment ")
|
log.Panic("Need fill BUS_LOCAL_HOST ! in OS Environment ")
|
||||||
}
|
}
|
||||||
@ -96,6 +106,9 @@ func Start() {
|
|||||||
stopapp.GetWaitGroup_Main().Add(1)
|
stopapp.GetWaitGroup_Main().Add(1)
|
||||||
go WaitStop()
|
go WaitStop()
|
||||||
|
|
||||||
|
stopapp.GetWaitGroup_Main().Add(1)
|
||||||
|
go ping_go()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CloseConnection - закрывает подключение к NATS
|
// CloseConnection - закрывает подключение к NATS
|
||||||
@ -122,3 +135,35 @@ func IsRecordNotFound(err error) bool {
|
|||||||
|
|
||||||
return Otvet
|
return Otvet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ping_go - делает пинг каждые 60 секунд, и реконнект
|
||||||
|
func ping_go() {
|
||||||
|
|
||||||
|
ticker := time.NewTicker(60 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
|
||||||
|
addr := Settings.NATS_HOST + ":" + Settings.NATS_PORT
|
||||||
|
|
||||||
|
//бесконечный цикл
|
||||||
|
loop:
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-contextmain.GetContext().Done():
|
||||||
|
log.Warn("Context app is canceled. nrpc_client.ping")
|
||||||
|
break loop
|
||||||
|
case <-ticker.C:
|
||||||
|
err := port_checker.CheckPort_err(Settings.NATS_HOST, Settings.NATS_PORT)
|
||||||
|
//log.Debug("ticker, ping err: ", err) //удалить
|
||||||
|
if err != nil {
|
||||||
|
NeedReconnect = true
|
||||||
|
log.Warn("nrpc_client CheckPort(", addr, ") error: ", err)
|
||||||
|
} else if NeedReconnect == true {
|
||||||
|
log.Warn("nrpc_client CheckPort(", addr, ") OK. Start Reconnect()")
|
||||||
|
NeedReconnect = false
|
||||||
|
Connect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stopapp.GetWaitGroup_Main().Done()
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user