1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2024-12-22 00:36:41 +02:00

сделал mutex_GetVersionModel

This commit is contained in:
Nikitin Aleksandr 2024-01-23 17:56:29 +03:00
parent 67682e3d65
commit 67ca0be64c
2 changed files with 92 additions and 37 deletions

View File

@ -2,6 +2,7 @@ package grpc_client
import (
"context"
"errors"
"github.com/ManyakRus/starter/contextmain"
"github.com/ManyakRus/starter/log"
"github.com/ManyakRus/starter/port_checker"
@ -31,8 +32,8 @@ var Conn *grpc.ClientConn
// Client - подключение к клиенту GRPC
var Client grpc_proto.SyncServiceClient
// mutexReconnect - защита от многопоточности Reconnect()
var mutexReconnect = &sync.Mutex{}
// mutex_Connect - защита от многопоточности Reconnect()
var mutex_Connect = &sync.Mutex{}
// NeedReconnect - флаг необходимости переподключения
var NeedReconnect bool
@ -56,8 +57,16 @@ func Connect() {
func Connect_err() error {
var err error
//
mutex_Connect.Lock()
defer mutex_Connect.Unlock()
//
if Settings.SYNC_SERVICE_HOST == "" {
FillSettings()
err = FillSettings()
if err != nil {
return err
}
}
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
@ -67,18 +76,26 @@ func Connect_err() error {
return err
}
func FillSettings() {
func FillSettings() error {
var err error
Settings = SettingsINI{}
Settings.SYNC_SERVICE_HOST = os.Getenv("SYNC_SERVICE_HOST")
Settings.SYNC_SERVICE_PORT = os.Getenv("SYNC_SERVICE_PORT")
if Settings.SYNC_SERVICE_HOST == "" {
log.Panic("Need fill SYNC_SERVICE_HOST ! in OS Environment ")
TextError := "Need fill SYNC_SERVICE_HOST ! in OS Environment "
err = errors.New(TextError)
return err
}
if Settings.SYNC_SERVICE_PORT == "" {
log.Panic("Need fill SYNC_SERVICE_PORT ! in OS Environment ")
TextError := "Need fill SYNC_SERVICE_PORT ! in OS Environment "
err = errors.New(TextError)
return err
}
return err
}
// WaitStop - ожидает отмену глобального контекста
@ -99,20 +116,9 @@ func WaitStop() {
// Start - необходимые процедуры для запуска сервера GRPC
// если контекст хранится в contextmain.GetContext()
// и есть stopapp.GetWaitGroup_Main()
// при ошибке вызывает панику
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)
@ -123,6 +129,28 @@ func Start_ctx(ctx *context.Context, wg *sync.WaitGroup) {
}
// Start_ctx - необходимые процедуры для запуска сервера GRPC
// ctx - глобальный контекст приложения
// wg - глобальный WaitGroup приложения
func Start_ctx(ctx *context.Context, wg *sync.WaitGroup) error {
var err error
contextmain.Ctx = ctx
stopapp.SetWaitGroup_Main(wg)
err = Connect_err()
if err != nil {
return err
}
stopapp.GetWaitGroup_Main().Add(1)
go WaitStop()
stopapp.GetWaitGroup_Main().Add(1)
go ping_go()
return err
}
// CloseConnection - закрывает подключение к GRPC, и пишет лог
func CloseConnection() {
err := CloseConnection_err()

View File

@ -1,10 +1,14 @@
//Файл создан автоматически кодогенератором crud_generator
//Не изменяйте ничего здесь.
//Файл создан автоматически кодогенератором crud_generator
//Не изменяйте ничего здесь.
package nrpc_client
import (
"context"
"errors"
"github.com/ManyakRus/starter/contextmain"
"github.com/ManyakRus/starter/log"
"github.com/ManyakRus/starter/port_checker"
@ -34,8 +38,8 @@ var Conn *nats.Conn
// Client - подключение к клиенту NRPC
var Client *grpc_proto.Sync_serviceClient
// mutexReconnect - защита от многопоточности Reconnect()
var mutexReconnect = &sync.Mutex{}
// mutex_Connect - защита от многопоточности Reconnect()
var mutex_Connect = &sync.Mutex{}
// NeedReconnect - флаг необходимости переподключения
var NeedReconnect bool
@ -59,6 +63,10 @@ func Connect() {
func Connect_err() error {
var err error
//
mutex_Connect.Lock()
defer mutex_Connect.Unlock()
if Settings.NATS_HOST == "" {
FillSettings()
}
@ -78,7 +86,9 @@ func Connect_err() error {
}
// FillSettings - заполняет настройки из переменных окружения
func FillSettings() {
func FillSettings() error {
var err error
Settings = SettingsINI{}
Settings.NATS_HOST = os.Getenv("NATS_HOST")
Settings.NATS_PORT = os.Getenv("NATS_PORT")
@ -93,12 +103,18 @@ func FillSettings() {
}
if Settings.NATS_HOST == "" {
log.Panic("Need fill BUS_LOCAL_HOST ! in OS Environment ")
TextError := "Need fill BUS_LOCAL_HOST ! in OS Environment "
err = errors.New(TextError)
return err
}
if Settings.NATS_PORT == "" {
log.Panic("Need fill BUS_LOCAL_PORT ! in OS Environment ")
TextError := "Need fill BUS_LOCAL_PORT ! in OS Environment "
err = errors.New(TextError)
return err
}
return err
}
// WaitStop - ожидает отмену глобального контекста
@ -119,20 +135,9 @@ func WaitStop() {
// Start - необходимые процедуры для запуска сервера NRPC
// если контекст хранится в contextmain.GetContext()
// и есть stopapp.GetWaitGroup_Main()
// при ошибке вызывает панику
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)
@ -143,6 +148,28 @@ func Start_ctx(ctx *context.Context, wg *sync.WaitGroup) {
}
// Start_ctx - необходимые процедуры для запуска сервера NRPC
// ctx - глобальный контекст приложения
// wg - глобальный WaitGroup приложения
func Start_ctx(ctx *context.Context, wg *sync.WaitGroup) error {
var err error
contextmain.Ctx = ctx
stopapp.SetWaitGroup_Main(wg)
err = Connect_err()
if err != nil {
return err
}
stopapp.GetWaitGroup_Main().Add(1)
go WaitStop()
stopapp.GetWaitGroup_Main().Add(1)
go ping_go()
return err
}
// CloseConnection - закрывает подключение к NATS
func CloseConnection() {
Conn.Close()