mirror of
https://github.com/nabbar/golib.git
synced 2025-12-24 11:51:02 +08:00
Package socket:
- Client: optimize code & memory - Client: allow multiple send content for one connection - Server: optmize code - Server: optimize memory use & stream Package server: - Rework chan / cancel process - Simplify & optimize chan / cancel process - Add Function Action for Ticker as FuncTicker - Rename type func Action to FuncAction Package httpserver: - Fix error on starting runner - Log error on starting runner - Optimize some code Package config: - Add log info for each starting / reloading component (if default logger is set) - Add log error for starting error or not started for each component on start / reload (if default logger is set) Package monitor: - review ticker delay for starting puller (pass from 500ms to 50ms) Other: - bump dependencies
This commit is contained in:
@@ -86,7 +86,27 @@ func (o *srv) runStart(ctx context.Context) error {
|
||||
return ErrorServerValidate.Error(nil)
|
||||
}
|
||||
|
||||
return o.r.Start(ctx)
|
||||
if e := o.r.Start(ctx); e != nil {
|
||||
return e
|
||||
}
|
||||
|
||||
var x, n = context.WithTimeout(ctx, 30*time.Second)
|
||||
|
||||
defer n()
|
||||
|
||||
for !o.r.IsRunning() {
|
||||
select {
|
||||
case <-x.Done():
|
||||
return errNotRunning
|
||||
default:
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
if o.r.IsRunning() {
|
||||
return o.GetError()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return o.GetError()
|
||||
}
|
||||
|
||||
func (o *srv) runStop(ctx context.Context) error {
|
||||
@@ -239,3 +259,25 @@ func (o *srv) Uptime() time.Duration {
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func (o *srv) IsError() bool {
|
||||
if el := o.r.ErrorsList(); len(el) > 0 {
|
||||
for _, e := range el {
|
||||
if e != nil {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func (o *srv) GetError() error {
|
||||
var err = ErrorServerStart.Error(o.r.ErrorsList()...)
|
||||
|
||||
if err.HasParent() {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user