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 ( import (
"context" "context"
"errors"
"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/port_checker"
@ -31,8 +32,8 @@ var Conn *grpc.ClientConn
// Client - подключение к клиенту GRPC // Client - подключение к клиенту GRPC
var Client grpc_proto.SyncServiceClient var Client grpc_proto.SyncServiceClient
// mutexReconnect - защита от многопоточности Reconnect() // mutex_Connect - защита от многопоточности Reconnect()
var mutexReconnect = &sync.Mutex{} var mutex_Connect = &sync.Mutex{}
// NeedReconnect - флаг необходимости переподключения // NeedReconnect - флаг необходимости переподключения
var NeedReconnect bool var NeedReconnect bool
@ -56,8 +57,16 @@ func Connect() {
func Connect_err() error { func Connect_err() error {
var err error var err error
//
mutex_Connect.Lock()
defer mutex_Connect.Unlock()
//
if Settings.SYNC_SERVICE_HOST == "" { if Settings.SYNC_SERVICE_HOST == "" {
FillSettings() err = FillSettings()
if err != nil {
return err
}
} }
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
@ -67,18 +76,26 @@ func Connect_err() error {
return err return err
} }
func FillSettings() { func FillSettings() error {
var err error
Settings = SettingsINI{} Settings = SettingsINI{}
Settings.SYNC_SERVICE_HOST = os.Getenv("SYNC_SERVICE_HOST") Settings.SYNC_SERVICE_HOST = os.Getenv("SYNC_SERVICE_HOST")
Settings.SYNC_SERVICE_PORT = os.Getenv("SYNC_SERVICE_PORT") Settings.SYNC_SERVICE_PORT = os.Getenv("SYNC_SERVICE_PORT")
if Settings.SYNC_SERVICE_HOST == "" { 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 == "" { 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 - ожидает отмену глобального контекста // WaitStop - ожидает отмену глобального контекста
@ -99,20 +116,9 @@ func WaitStop() {
// Start - необходимые процедуры для запуска сервера GRPC // Start - необходимые процедуры для запуска сервера GRPC
// если контекст хранится в contextmain.GetContext() // если контекст хранится в contextmain.GetContext()
// и есть stopapp.GetWaitGroup_Main()
// при ошибке вызывает панику
func Start() { 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() Connect()
stopapp.GetWaitGroup_Main().Add(1) 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, и пишет лог // CloseConnection - закрывает подключение к GRPC, и пишет лог
func CloseConnection() { func CloseConnection() {
err := CloseConnection_err() err := CloseConnection_err()

View File

@ -1,10 +1,14 @@
//Файл создан автоматически кодогенератором crud_generator //Файл создан автоматически кодогенератором crud_generator
//Не изменяйте ничего здесь. //Не изменяйте ничего здесь.
//Файл создан автоматически кодогенератором crud_generator
//Не изменяйте ничего здесь.
package nrpc_client package nrpc_client
import ( import (
"context" "context"
"errors"
"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/port_checker"
@ -34,8 +38,8 @@ var Conn *nats.Conn
// Client - подключение к клиенту NRPC // Client - подключение к клиенту NRPC
var Client *grpc_proto.Sync_serviceClient var Client *grpc_proto.Sync_serviceClient
// mutexReconnect - защита от многопоточности Reconnect() // mutex_Connect - защита от многопоточности Reconnect()
var mutexReconnect = &sync.Mutex{} var mutex_Connect = &sync.Mutex{}
// NeedReconnect - флаг необходимости переподключения // NeedReconnect - флаг необходимости переподключения
var NeedReconnect bool var NeedReconnect bool
@ -59,6 +63,10 @@ func Connect() {
func Connect_err() error { func Connect_err() error {
var err error var err error
//
mutex_Connect.Lock()
defer mutex_Connect.Unlock()
if Settings.NATS_HOST == "" { if Settings.NATS_HOST == "" {
FillSettings() FillSettings()
} }
@ -78,7 +86,9 @@ func Connect_err() error {
} }
// FillSettings - заполняет настройки из переменных окружения // FillSettings - заполняет настройки из переменных окружения
func FillSettings() { func FillSettings() error {
var err error
Settings = SettingsINI{} Settings = SettingsINI{}
Settings.NATS_HOST = os.Getenv("NATS_HOST") Settings.NATS_HOST = os.Getenv("NATS_HOST")
Settings.NATS_PORT = os.Getenv("NATS_PORT") Settings.NATS_PORT = os.Getenv("NATS_PORT")
@ -93,12 +103,18 @@ func FillSettings() {
} }
if Settings.NATS_HOST == "" { 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 == "" { 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 - ожидает отмену глобального контекста // WaitStop - ожидает отмену глобального контекста
@ -119,20 +135,9 @@ func WaitStop() {
// Start - необходимые процедуры для запуска сервера NRPC // Start - необходимые процедуры для запуска сервера NRPC
// если контекст хранится в contextmain.GetContext() // если контекст хранится в contextmain.GetContext()
// и есть stopapp.GetWaitGroup_Main()
// при ошибке вызывает панику
func Start() { 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() Connect()
stopapp.GetWaitGroup_Main().Add(1) 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 // CloseConnection - закрывает подключение к NATS
func CloseConnection() { func CloseConnection() {
Conn.Close() Conn.Close()