service

package
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReplyTaskPoolFull

func ReplyTaskPoolFull[TraceData any, TP ctx.TracePtr[TraceData]](c *ctx.BaseCtx[TraceData, TP])

ReplyTaskPoolFull reply task pool full error

Types

type BaseService

type BaseService[TraceData any, TP ctx.TracePtr[TraceData]] struct {
	// contains filtered or unexported fields
}

func NewBaseService

func NewBaseService[TraceData any, TP ctx.TracePtr[TraceData]](
	natsUrls []string,
	lockQueueThread bool,
	hashMode HashRunMode,
	taskMode TaskRunMode,
	rpcTimeout time.Duration,
	middlewares ...handler.Middleware[TraceData, TP],
) *BaseService[TraceData, TP]

NewBaseService create a new BaseService

func (*BaseService[TraceData, TP]) GetHandler

func (s *BaseService[TraceData, TP]) GetHandler() *handler.Handler[TraceData, TP]

GetHandler return all registered handlers

func (*BaseService[TraceData, TP]) GetNatsCluster

func (s *BaseService[TraceData, TP]) GetNatsCluster() *natsclient.ClusterClient

GetNatsCluster return nats cluster client

func (*BaseService[TraceData, TP]) PostEventloop

func (s *BaseService[TraceData, TP]) PostEventloop(e any)

PostEventloop post any event to eventloop

func (*BaseService[TraceData, TP]) Start

func (s *BaseService[TraceData, TP]) Start(f func(any))

Start if PostEventloop is being called, param f need to be implemented by the user

func (*BaseService[TraceData, TP]) Stop

func (s *BaseService[TraceData, TP]) Stop()

Stop the service

type HashRunMode

type HashRunMode int

HashRunMode 0: FixedHashPoolMode, 1: OneHashOneGo FixedHashPoolMode use hash to run task, OneHashOneGo use one hash one goroutine

const (
	// FixedHashPoolMode fixed((runtime.NumCPU()+1)*1024) task group pool
	// by ToHash() distribute task to task_group.TaskGroup
	FixedHashPoolMode HashRunMode = 0

	// OneHashOneGo one hash one goroutine
	OneHashOneGo HashRunMode = 1
)

type ServerUserService

type ServerUserService[T1 any, TraceData any, TP ctx.TracePtr[TraceData], US natsclient.ServerUserSubjectPtr[T1]] struct {
	*BaseService[TraceData, TP]
	// contains filtered or unexported fields
}

ServerUserService is a service,can use user subject.

func NewServerUserService

func NewServerUserService[T1 any, TraceData any, TP ctx.TracePtr[TraceData], US natsclient.ServerUserSubjectPtr[T1]](
	natsUrls []string,
	lockQueueThread bool,
	hashMode HashRunMode,
	taskMode TaskRunMode,
	rpcTimeout time.Duration,
	middlewares ...handler.Middleware[TraceData, TP],
) *ServerUserService[T1, TraceData, TP, US]

NewServerUserService create a ServerUserService.

func (*ServerUserService[T1, TraceData, TP, US]) DealServerUserNatsMsg added in v0.1.3

func (s *ServerUserService[T1, TraceData, TP, US]) DealServerUserNatsMsg(msg *nats.Msg)

func (*ServerUserService[T1, TraceData, TP, US]) GetUserNatsCluster

func (s *ServerUserService[T1, TraceData, TP, US]) GetUserNatsCluster() *natsclient.ClusterClientServerUser[T1, US]

GetUserNatsCluster return *ClusterClientServerUser.

func (*ServerUserService[T1, TraceData, TP, US]) UserSubscribeAll

func (s *ServerUserService[T1, TraceData, TP, US]) UserSubscribeAll(us US)

UserSubscribeAll subscribe all NatsClient for user subject.

func (*ServerUserService[T1, TraceData, TP, US]) UserSubscribeAllWaitSuccess

func (s *ServerUserService[T1, TraceData, TP, US]) UserSubscribeAllWaitSuccess(us US)

UserSubscribeAllWaitSuccess subscribe all NatsClient for user subject and wait success. Only used in multi-cluster or multiple connections to the same cluster

func (*ServerUserService[T1, TraceData, TP, US]) UserSubscribeOne

func (s *ServerUserService[T1, TraceData, TP, US]) UserSubscribeOne(us US)

UserSubscribeOne subscribe one user subject.

func (*ServerUserService[T1, TraceData, TP, US]) UserSubscribeOneWaitSuccess

func (s *ServerUserService[T1, TraceData, TP, US]) UserSubscribeOneWaitSuccess(us US)

UserSubscribeOneWaitSuccess subscribe one user subject and wait success. Only used in multi-cluster or multiple connections to the same cluster

func (*ServerUserService[T1, TraceData, TP, US]) UserUnsubscribe

func (s *ServerUserService[T1, TraceData, TP, US]) UserUnsubscribe(us US)

UserUnsubscribe unsubscribe user subject if subscribed.

type TaskRunMode

type TaskRunMode int
const (
	// TaskPool all task run in task_group.TaskPool
	TaskPool TaskRunMode = 0
	// OneTaskOneGo one task one goroutine
	OneTaskOneGo TaskRunMode = 1
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL