mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2025-05-27 11:08:36 +02:00
сделал Start_ctx()
This commit is contained in:
parent
1fe4705d7b
commit
26c8aca28d
@ -1,6 +1,7 @@
|
||||
package grpc_client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/ManyakRus/starter/contextmain"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/port_checker"
|
||||
@ -15,15 +16,19 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// SettingsINI - тип структуры для хранения настроек подключени
|
||||
type SettingsINI struct {
|
||||
SYNC_SERVICE_HOST string
|
||||
SYNC_SERVICE_PORT string
|
||||
}
|
||||
|
||||
// SettingsINI - структура для хранения настроек подключени
|
||||
var Settings SettingsINI
|
||||
|
||||
// Conn - подключение к серверу GRPC
|
||||
var Conn *grpc.ClientConn
|
||||
|
||||
// Client - подключение к клиенту GRPC
|
||||
var Client grpc_proto.SyncServiceClient
|
||||
|
||||
// mutexReconnect - защита от многопоточности Reconnect()
|
||||
@ -32,22 +37,34 @@ var mutexReconnect = &sync.Mutex{}
|
||||
// NeedReconnect - флаг необходимости переподключения
|
||||
var NeedReconnect bool
|
||||
|
||||
// Connect - подключается к серверу GRPC, при ошибке вызывает панику
|
||||
func Connect() {
|
||||
var err error
|
||||
|
||||
err = Connect_err()
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("GRPC Connect() error: %v", err)
|
||||
} else {
|
||||
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
|
||||
log.Info("GRPC client connected. Address: ", addr)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Connect_err - подключается к серверу GRPC, возвращает ошибку
|
||||
func Connect_err() error {
|
||||
var err error
|
||||
|
||||
if Settings.SYNC_SERVICE_HOST == "" {
|
||||
FillSettings()
|
||||
}
|
||||
|
||||
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
|
||||
Conn, err = grpc.Dial(addr, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
if err != nil {
|
||||
log.Fatalf("did not connect: %v", err)
|
||||
}
|
||||
|
||||
log.Info("GRPC client connected. Address: ", addr)
|
||||
|
||||
Client = grpc_proto.NewSyncServiceClient(Conn)
|
||||
return err
|
||||
}
|
||||
|
||||
func FillSettings() {
|
||||
@ -81,7 +98,21 @@ func WaitStop() {
|
||||
}
|
||||
|
||||
// Start - необходимые процедуры для запуска сервера GRPC
|
||||
// если контекст хранится в contextmain.GetContext()
|
||||
func Start() {
|
||||
contextmain.GetContext()
|
||||
ctx := contextmain.Ctx
|
||||
wg := stopapp.GetWaitGroup_Main()
|
||||
Start_ctx(ctx, wg)
|
||||
}
|
||||
|
||||
// Start_ctx - необходимые процедуры для запуска сервера GRPC
|
||||
// ctx - глобальный контекст приложения
|
||||
// wg - глобальный WaitGroup приложения
|
||||
func Start_ctx(ctx *context.Context, wg *sync.WaitGroup) {
|
||||
contextmain.Ctx = ctx
|
||||
stopapp.SetWaitGroup_Main(wg)
|
||||
|
||||
Connect()
|
||||
|
||||
stopapp.GetWaitGroup_Main().Add(1)
|
||||
@ -92,15 +123,22 @@ func Start() {
|
||||
|
||||
}
|
||||
|
||||
// CloseConnection - закрывает подключение к GRPC, и пишет лог
|
||||
func CloseConnection() {
|
||||
err := Conn.Close()
|
||||
err := CloseConnection_err()
|
||||
if err != nil {
|
||||
log.Panic("GRPC client CloseConnection() error: ", err)
|
||||
log.Error("GRPC client CloseConnection() error: ", err)
|
||||
} else {
|
||||
log.Info("GRPC client connection closed")
|
||||
}
|
||||
}
|
||||
|
||||
// CloseConnection - закрывает подключение к GRPC, и возвращает ошибку
|
||||
func CloseConnection_err() error {
|
||||
err := Conn.Close()
|
||||
return err
|
||||
}
|
||||
|
||||
// IsRecordNotFound - возвращает true если ошибка = "record not found"
|
||||
func IsRecordNotFound(err error) bool {
|
||||
Otvet := false
|
||||
@ -142,7 +180,11 @@ loop:
|
||||
} else if NeedReconnect == true {
|
||||
log.Warn("grpc_client CheckPort(", addr, ") OK. Start Reconnect()")
|
||||
NeedReconnect = false
|
||||
Connect()
|
||||
err = Connect_err()
|
||||
if err != nil {
|
||||
NeedReconnect = true
|
||||
log.Error("grpc_client Connect() error: ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
package nrpc_client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/ManyakRus/starter/contextmain"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/port_checker"
|
||||
@ -18,11 +19,13 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// SettingsINI - тип структуры для хранения настроек подключени
|
||||
type SettingsINI struct {
|
||||
NATS_HOST string
|
||||
NATS_PORT string
|
||||
}
|
||||
|
||||
// SettingsINI - структура для хранения настроек подключени
|
||||
var Settings SettingsINI
|
||||
|
||||
// Conn - подключение к NATS
|
||||
@ -37,10 +40,25 @@ var mutexReconnect = &sync.Mutex{}
|
||||
// NeedReconnect - флаг необходимости переподключения
|
||||
var NeedReconnect bool
|
||||
|
||||
// Connect - подключается к NATS
|
||||
// Connect - подключается к серверу NRPC, при ошибке вызывает панику
|
||||
func Connect() {
|
||||
var err error
|
||||
|
||||
err = Connect_err()
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("NRPC Connect() error: %v", err)
|
||||
} else {
|
||||
NatsURL := "nats://" + Settings.NATS_HOST + ":" + Settings.NATS_PORT
|
||||
log.Info("GRPC client connected. Address: ", NatsURL)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Connect_err - подключается к серверу NRPC, возвращает ошибку
|
||||
func Connect_err() error {
|
||||
var err error
|
||||
|
||||
if Settings.NATS_HOST == "" {
|
||||
FillSettings()
|
||||
}
|
||||
@ -56,7 +74,7 @@ func Connect() {
|
||||
// This is our generated client.
|
||||
Client = grpc_proto.NewSync_serviceClient(Conn)
|
||||
|
||||
log.Info("Client NRPC connected: ", NatsURL)
|
||||
return err
|
||||
}
|
||||
|
||||
// FillSettings - заполняет настройки из переменных окружения
|
||||
@ -100,7 +118,21 @@ func WaitStop() {
|
||||
}
|
||||
|
||||
// Start - необходимые процедуры для запуска сервера NRPC
|
||||
// если контекст хранится в contextmain.GetContext()
|
||||
func Start() {
|
||||
contextmain.GetContext()
|
||||
ctx := contextmain.Ctx
|
||||
wg := stopapp.GetWaitGroup_Main()
|
||||
Start_ctx(ctx, wg)
|
||||
}
|
||||
|
||||
// Start_ctx - необходимые процедуры для запуска сервера NRPC
|
||||
// ctx - глобальный контекст приложения
|
||||
// wg - глобальный WaitGroup приложения
|
||||
func Start_ctx(ctx *context.Context, wg *sync.WaitGroup) {
|
||||
contextmain.Ctx = ctx
|
||||
stopapp.SetWaitGroup_Main(wg)
|
||||
|
||||
Connect()
|
||||
|
||||
stopapp.GetWaitGroup_Main().Add(1)
|
||||
@ -160,7 +192,11 @@ loop:
|
||||
} else if NeedReconnect == true {
|
||||
log.Warn("nrpc_client CheckPort(", addr, ") OK. Start Reconnect()")
|
||||
NeedReconnect = false
|
||||
Connect()
|
||||
err = Connect_err()
|
||||
if err != nil {
|
||||
NeedReconnect = true
|
||||
log.Error("nrpc_client Connect() error: ", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ type ICrud_LawsuitStatusType interface {
|
||||
Find_ByExtID(*LawsuitStatusType) error
|
||||
}
|
||||
|
||||
// TableName - возвращает имя таблицы в БД, нужен для gorm
|
||||
// TableName - возвращает имя таблицы в БД
|
||||
func (m LawsuitStatusType) TableNameDB() string {
|
||||
return "lawsuit_status_types"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user