vars.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package handler
  2. import (
  3. "GtDataStore/app/cmd/events/internal/logic/job"
  4. "context"
  5. "metawant.greentech.com.cn/gaoyagang/gt-common/rabbitMQ"
  6. "time"
  7. )
  8. const (
  9. EVENT_NOTIFY = "EVENT_NOTIFY"
  10. EVENT_SINGLE_ITEM = "SINGLE_ITEM_EVENT" // 单点位值事件
  11. EVENT_MULTI_ITEM = "MULTI_ITEM_EVENT" // 多点位值事件
  12. EVTNE_NOTIFY_KEY_FORMAT = "EVENT:NOFITY:%d:%s" // 事件通知通道 %d: 项目名称 %s: 事件名称
  13. )
  14. type (
  15. // 事件信息
  16. eventInfo struct {
  17. ProjectId int64
  18. DeviceCode string
  19. Item string
  20. EventId int64
  21. EventName string
  22. OldValue string
  23. NewValue string
  24. Time time.Time
  25. MsgTime time.Time
  26. }
  27. )
  28. var (
  29. eventChan chan eventInfo
  30. producter *rabbitMQ.Producter
  31. EventIntervalTable = map[string]time.Duration{
  32. EVENT_SINGLE_ITEM: 1 * time.Second,
  33. EVENT_MULTI_ITEM: 60 * time.Second,
  34. }
  35. EventHandlerTable = map[string]func(ctx context.Context, task *job.Task, technologyName string) error{
  36. EVENT_SINGLE_ITEM: EventSingle,
  37. EVENT_MULTI_ITEM: EventMulti,
  38. }
  39. )
  40. func init() {
  41. eventChan = make(chan eventInfo, 50)
  42. }