mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2024-12-22 00:36:41 +02:00
сделал fmt.Errorf("Read()
This commit is contained in:
parent
aa46709a6b
commit
8e96c88d70
@ -48,6 +48,9 @@ func (crud Crud_DB) Read_ctx(ctx context.Context, m *lawsuit_status_types.Lawsui
|
|||||||
|
|
||||||
tx := db.First(m, id)
|
tx := db.First(m, id)
|
||||||
err = tx.Error
|
err = tx.Error
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Read() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -192,6 +195,9 @@ func (crud Crud_DB) create_update_ctx(ctx context.Context, m *lawsuit_status_typ
|
|||||||
err = errors.New(TextError)
|
err = errors.New(TextError)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Create_update() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -228,6 +234,9 @@ func (crud Crud_DB) Delete_ctx(ctx context.Context, m *lawsuit_status_types.Laws
|
|||||||
m.IsDeleted = true
|
m.IsDeleted = true
|
||||||
|
|
||||||
err = crud.Save_ctx(ctx, &m2)
|
err = crud.Save_ctx(ctx, &m2)
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Delete() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -264,6 +273,9 @@ func (crud Crud_DB) Restore_ctx(ctx context.Context, m *lawsuit_status_types.Law
|
|||||||
m.IsDeleted = false
|
m.IsDeleted = false
|
||||||
|
|
||||||
err = crud.Save_ctx(ctx, &m2)
|
err = crud.Save_ctx(ctx, &m2)
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Restore() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -306,6 +318,9 @@ func (crud Crud_DB) Find_ByExtID_ctx(ctx context.Context, m *lawsuit_status_type
|
|||||||
|
|
||||||
tx := db.Where("ext_id = ?", m.ExtID).Where("connection_id = ?", m.ConnectionID).First(m)
|
tx := db.Where("ext_id = ?", m.ExtID).Where("connection_id = ?", m.ConnectionID).First(m)
|
||||||
err = tx.Error
|
err = tx.Error
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Find_ByExtID() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,9 @@ func (crud Crud_DB) Read_ctx(ctx context.Context, m *lawsuit_status_types.Lawsui
|
|||||||
|
|
||||||
tx := db.First(m, id)
|
tx := db.First(m, id)
|
||||||
err = tx.Error
|
err = tx.Error
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Read() id: %v, error: %v", id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -192,6 +195,9 @@ func (crud Crud_DB) create_update_ctx(ctx context.Context, m *lawsuit_status_typ
|
|||||||
err = errors.New(TextError)
|
err = errors.New(TextError)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Create_Update() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -228,6 +234,9 @@ func (crud Crud_DB) Delete_ctx(ctx context.Context, m *lawsuit_status_types.Laws
|
|||||||
m.IsDeleted = true
|
m.IsDeleted = true
|
||||||
|
|
||||||
err = crud.Save_ctx(ctx, &m2)
|
err = crud.Save_ctx(ctx, &m2)
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Delete() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -264,6 +273,9 @@ func (crud Crud_DB) Restore_ctx(ctx context.Context, m *lawsuit_status_types.Law
|
|||||||
m.IsDeleted = false
|
m.IsDeleted = false
|
||||||
|
|
||||||
err = crud.Save_ctx(ctx, &m2)
|
err = crud.Save_ctx(ctx, &m2)
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Restore() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -306,6 +318,9 @@ func (crud Crud_DB) Find_ByExtID_ctx(ctx context.Context, m *lawsuit_status_type
|
|||||||
|
|
||||||
tx := db.Where("ext_id = ?", m.ExtID).Where("connection_id = ?", m.ConnectionID).First(m)
|
tx := db.Where("ext_id = ?", m.ExtID).Where("connection_id = ?", m.ConnectionID).First(m)
|
||||||
err = tx.Error
|
err = tx.Error
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("Find_ByExtID() id: %v, error: %v", m.id, err)
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,28 @@
|
|||||||
package constants
|
package constants
|
||||||
|
|
||||||
var TIMEOUT_SECONDS = 30
|
import "sync"
|
||||||
|
|
||||||
|
// timeout_seconds - время ожидания ответа
|
||||||
|
var timeout_seconds int = 30
|
||||||
|
|
||||||
|
// TEXT_ERROR_MODEL_VERSION - текст ошибки версии модели
|
||||||
const TEXT_ERROR_MODEL_VERSION = "Error: wrong version object model"
|
const TEXT_ERROR_MODEL_VERSION = "Error: wrong version object model"
|
||||||
|
|
||||||
|
// mutex_TIMEOUT_SECONDS - защита от многопоточности GetTimeoutSeconds()
|
||||||
|
var mutex_TIMEOUT_SECONDS sync.RWMutex
|
||||||
|
|
||||||
|
// GetTimeoutSeconds - возвращает время ожидания ответа
|
||||||
|
func GetTimeoutSeconds() int {
|
||||||
|
mutex_TIMEOUT_SECONDS.RLock()
|
||||||
|
defer mutex_TIMEOUT_SECONDS.RUnlock()
|
||||||
|
|
||||||
|
return timeout_seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetTimeoutSeconds - устанавливает время ожидания ответа
|
||||||
|
func SetTimeoutSeconds(seconds int) {
|
||||||
|
mutex_TIMEOUT_SECONDS.Lock()
|
||||||
|
defer mutex_TIMEOUT_SECONDS.Unlock()
|
||||||
|
|
||||||
|
timeout_seconds = seconds
|
||||||
|
}
|
||||||
|
@ -2,12 +2,14 @@ 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"
|
||||||
"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/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"
|
||||||
|
grpc_constants "gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/constants"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
"os"
|
"os"
|
||||||
@ -31,8 +33,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
|
||||||
@ -44,7 +46,7 @@ func Connect() {
|
|||||||
err = Connect_err()
|
err = Connect_err()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("GRPC Connect() error: %v", err)
|
log.Panicf("GRPC Connect() error: %v", err)
|
||||||
} else {
|
} else {
|
||||||
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
|
addr := Settings.SYNC_SERVICE_HOST + ":" + Settings.SYNC_SERVICE_PORT
|
||||||
log.Info("GRPC client connected. Address: ", addr)
|
log.Info("GRPC client connected. Address: ", addr)
|
||||||
@ -56,29 +58,48 @@ 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
|
||||||
Conn, err = grpc.Dial(addr, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
Conn, err = grpc.Dial(addr, grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
Client = grpc_proto.NewSyncServiceClient(Conn)
|
Client = grpc_proto.NewSyncServiceClient(Conn)
|
||||||
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 +120,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 +133,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()
|
||||||
@ -191,3 +223,15 @@ loop:
|
|||||||
|
|
||||||
stopapp.GetWaitGroup_Main().Done()
|
stopapp.GetWaitGroup_Main().Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTimeoutSeconds - возвращает время ожидания ответа
|
||||||
|
func GetTimeoutSeconds() int {
|
||||||
|
Otvet := grpc_constants.GetTimeoutSeconds()
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetTimeoutSeconds - устанавливает время ожидания ответа
|
||||||
|
func SetTimeoutSeconds(seconds int) {
|
||||||
|
grpc_constants.SetTimeoutSeconds(seconds)
|
||||||
|
}
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_proto"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/grpc/grpc_proto"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"log"
|
"log"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -17,12 +18,18 @@ var VersionModel uint32
|
|||||||
// TableName - имя таблицы в БД Postgres
|
// TableName - имя таблицы в БД Postgres
|
||||||
const TableName string = "lawsuit_status_types"
|
const TableName string = "lawsuit_status_types"
|
||||||
|
|
||||||
|
// mutex_GetVersionModel - защита от многопоточности GetVersionModel()
|
||||||
|
var mutex_GetVersionModel = sync.Mutex{}
|
||||||
|
|
||||||
// объект для CRUD операций через GRPC
|
// объект для CRUD операций через GRPC
|
||||||
type Crud_GRPC struct {
|
type Crud_GRPC struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetVersionModel - возвращает хэш версии структуры модели
|
// GetVersionModel - возвращает хэш версии структуры модели
|
||||||
func (crud Crud_GRPC) GetVersionModel() uint32 {
|
func (crud Crud_GRPC) GetVersionModel() uint32 {
|
||||||
|
mutex_GetVersionModel.Lock()
|
||||||
|
defer mutex_GetVersionModel.Unlock()
|
||||||
|
|
||||||
if VersionModel == 0 {
|
if VersionModel == 0 {
|
||||||
VersionModel = lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
VersionModel = lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
||||||
}
|
}
|
||||||
@ -39,14 +46,14 @@ func (crud Crud_GRPC) Read(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// подготовка запроса
|
// подготовка запроса
|
||||||
var VersionModel = crud.GetVersionModel()
|
var versionModel = crud.GetVersionModel()
|
||||||
|
|
||||||
Request := &grpc_proto.RequestId{}
|
Request := &grpc_proto.RequestId{}
|
||||||
Request.ID = int64(m.ID)
|
Request.ID = int64(m.ID)
|
||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = versionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
@ -90,7 +97,7 @@ func (crud Crud_GRPC) Create(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = VersionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
@ -134,7 +141,7 @@ func (crud Crud_GRPC) Update(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = VersionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
@ -178,7 +185,7 @@ func (crud Crud_GRPC) Save(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = VersionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
@ -218,7 +225,7 @@ func (crud Crud_GRPC) Delete(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = VersionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
@ -258,7 +265,7 @@ func (crud Crud_GRPC) Restore(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = VersionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
@ -297,7 +304,7 @@ func (crud Crud_GRPC) Find_ByExtID(m *lawsuit_status_types.LawsuitStatusType) er
|
|||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = VersionModel
|
||||||
|
|
||||||
ctxMain := context.Background()
|
ctxMain := context.Background()
|
||||||
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.TIMEOUT_SECONDS))
|
ctx, ctxCancelFunc := context.WithTimeout(ctxMain, time.Second*time.Duration(constants.GetTimeoutSeconds()))
|
||||||
defer ctxCancelFunc()
|
defer ctxCancelFunc()
|
||||||
|
|
||||||
//запрос
|
//запрос
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package constants
|
||||||
|
|
||||||
|
import "sync"
|
||||||
|
|
||||||
|
// timeout_seconds - время ожидания ответа
|
||||||
|
var timeout_seconds int = 30
|
||||||
|
|
||||||
|
// TEXT_ERROR_MODEL_VERSION - текст ошибки версии модели
|
||||||
|
const TEXT_ERROR_MODEL_VERSION = "Error: wrong version object model"
|
||||||
|
|
||||||
|
// mutex_TIMEOUT_SECONDS - защита от многопоточности GetTimeoutSeconds()
|
||||||
|
var mutex_TIMEOUT_SECONDS sync.RWMutex
|
||||||
|
|
||||||
|
// GetTimeoutSeconds - возвращает время ожидания ответа
|
||||||
|
func GetTimeoutSeconds() int {
|
||||||
|
mutex_TIMEOUT_SECONDS.RLock()
|
||||||
|
defer mutex_TIMEOUT_SECONDS.RUnlock()
|
||||||
|
|
||||||
|
return timeout_seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetTimeoutSeconds - устанавливает время ожидания ответа
|
||||||
|
func SetTimeoutSeconds(seconds int) {
|
||||||
|
mutex_TIMEOUT_SECONDS.Lock()
|
||||||
|
defer mutex_TIMEOUT_SECONDS.Unlock()
|
||||||
|
|
||||||
|
timeout_seconds = seconds
|
||||||
|
}
|
@ -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"
|
||||||
@ -12,6 +16,7 @@ import (
|
|||||||
"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/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"
|
||||||
|
nrpc_constants "gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/constants"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
@ -34,8 +39,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
|
||||||
@ -47,7 +52,7 @@ func Connect() {
|
|||||||
err = Connect_err()
|
err = Connect_err()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("NRPC Connect() error: %v", err)
|
log.Panicf("NRPC Connect() error: %v", err)
|
||||||
} else {
|
} else {
|
||||||
NatsURL := "nats://" + Settings.NATS_HOST + ":" + Settings.NATS_PORT
|
NatsURL := "nats://" + Settings.NATS_HOST + ":" + Settings.NATS_PORT
|
||||||
log.Info("GRPC client connected. Address: ", NatsURL)
|
log.Info("GRPC client connected. Address: ", NatsURL)
|
||||||
@ -59,17 +64,21 @@ 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()
|
||||||
}
|
}
|
||||||
|
|
||||||
NatsURL := "nats://" + Settings.NATS_HOST + ":" + Settings.NATS_PORT
|
NatsURL := "nats://" + Settings.NATS_HOST + ":" + Settings.NATS_PORT
|
||||||
|
|
||||||
// Connect to the NATS server.
|
// Connect to the NATS server.
|
||||||
Conn, err = nats.Connect(NatsURL, nats.Timeout(5*time.Second))
|
Conn, err = nats.Connect(NatsURL, nats.Timeout(5*time.Second))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
return err
|
||||||
}
|
}
|
||||||
// defer Conn.Close()
|
|
||||||
|
|
||||||
// This is our generated client.
|
// This is our generated client.
|
||||||
Client = grpc_proto.NewSync_serviceClient(Conn)
|
Client = grpc_proto.NewSync_serviceClient(Conn)
|
||||||
@ -78,7 +87,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 +104,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 +136,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 +149,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()
|
||||||
@ -203,3 +231,15 @@ loop:
|
|||||||
|
|
||||||
stopapp.GetWaitGroup_Main().Done()
|
stopapp.GetWaitGroup_Main().Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTimeoutSeconds - возвращает время ожидания ответа
|
||||||
|
func GetTimeoutSeconds() int {
|
||||||
|
Otvet := nrpc_constants.GetTimeoutSeconds()
|
||||||
|
|
||||||
|
return Otvet
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetTimeoutSeconds - устанавливает время ожидания ответа
|
||||||
|
func SetTimeoutSeconds(seconds int) {
|
||||||
|
nrpc_constants.SetTimeoutSeconds(seconds)
|
||||||
|
}
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/grpc_client/constants"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/network/nrpc/grpc_client/constants"
|
||||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities/lawsuit_status_types"
|
||||||
"log"
|
"log"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// VersionModel - хранит версию структуры модели
|
// VersionModel - хранит версию структуры модели
|
||||||
@ -19,8 +20,14 @@ const TableName string = "lawsuit_status_types"
|
|||||||
type Crud_NRPC struct {
|
type Crud_NRPC struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// mutex_GetVersionModel - защита от многопоточности GetVersionModel()
|
||||||
|
var mutex_GetVersionModel = sync.Mutex{}
|
||||||
|
|
||||||
// GetVersionModel - возвращает хэш версии структуры модели
|
// GetVersionModel - возвращает хэш версии структуры модели
|
||||||
func (crud Crud_NRPC) GetVersionModel() uint32 {
|
func (crud Crud_NRPC) GetVersionModel() uint32 {
|
||||||
|
mutex_GetVersionModel.Lock()
|
||||||
|
defer mutex_GetVersionModel.Unlock()
|
||||||
|
|
||||||
if VersionModel == 0 {
|
if VersionModel == 0 {
|
||||||
VersionModel = lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
VersionModel = lawsuit_status_types.LawsuitStatusType{}.GetStructVersion()
|
||||||
}
|
}
|
||||||
@ -37,11 +44,11 @@ func (crud Crud_NRPC) Read(m *lawsuit_status_types.LawsuitStatusType) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// подготовка запроса
|
// подготовка запроса
|
||||||
var VersionModel = crud.GetVersionModel()
|
var versionModel = crud.GetVersionModel()
|
||||||
|
|
||||||
Request := &grpc_proto.RequestId{}
|
Request := &grpc_proto.RequestId{}
|
||||||
Request.ID = int64(m.ID)
|
Request.ID = int64(m.ID)
|
||||||
Request.VersionModel = VersionModel
|
Request.VersionModel = versionModel
|
||||||
|
|
||||||
// запрос
|
// запрос
|
||||||
Response, err := nrpc_client.Client.LawsuitStatusType_Read(Request)
|
Response, err := nrpc_client.Client.LawsuitStatusType_Read(Request)
|
||||||
|
Loading…
Reference in New Issue
Block a user