gostream
v0.0.1
Stream Processing library for Go
type LogEvent struct {
Time time.Time
Level int
Message string
}
q := "select * from LogEvent.length(10)"
s, err := gostream.New().
Add(LogEvent{}).
Query(q)
if err != nil {
fmt.Printf("new gostream: %v", err)
return
}
defer s.Close()
go func() {
for {
fmt.Printf("%vn", <-s.Output())
}
}()
s.Input() <- LogEvent{
Time: time.Now()
Level: 1
Message: "something happened"
}
type LogEvent struct {
Time time.Time
Level int
Message string
}
s := stream.New().
SelectAll().
From(LogEvent{}).
Length(10).
OrderBy("Level", stream.DESC).
Limit(10, 5)
defer s.Close()
go s.Run()
go func() {
for {
fmt.Printf("%vn", <-s.Output())
}
}()
s.Input() <- LogEvent{
Time: time.Now()
Level: 1
Message: "something happened"
}