project structure refactoring
This commit is contained in:
54
stream/ustreamer.go
Normal file
54
stream/ustreamer.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package stream
|
||||
|
||||
import (
|
||||
"rkkvm/config"
|
||||
"rkkvm/external/process"
|
||||
"time"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var ustreamer *UStreamer
|
||||
|
||||
type UStreamer struct {
|
||||
*process.ExtProcess
|
||||
config.UStreamer
|
||||
state State
|
||||
}
|
||||
|
||||
func InitUStreamer(path string, args []string) *UStreamer {
|
||||
ustreamer = &UStreamer{
|
||||
ExtProcess: process.Init(path, args),
|
||||
UStreamer: config.Get().UStreamer,
|
||||
}
|
||||
return ustreamer
|
||||
}
|
||||
|
||||
func GetUStreamer() *UStreamer {
|
||||
return ustreamer
|
||||
}
|
||||
|
||||
func (u *UStreamer) MonitorState() {
|
||||
ticker := time.NewTicker(1 * time.Second)
|
||||
defer ticker.Stop()
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-ticker.C:
|
||||
{
|
||||
state, err := GetState()
|
||||
if err != nil {
|
||||
u.state = State{}
|
||||
log.Errorf("Failed to get process state: %v", err)
|
||||
continue
|
||||
}
|
||||
|
||||
u.state = state
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (u *UStreamer) GetState() State {
|
||||
return u.state
|
||||
}
|
||||
Reference in New Issue
Block a user