package handler import ( "GtDataStore/app/cmd/events/internal/logic/job" "context" "metawant.greentech.com.cn/gaoyagang/gt-common/rabbitMQ" "time" ) const ( EVENT_NOTIFY = "EVENT_NOTIFY" EVENT_SINGLE_ITEM = "SINGLE_ITEM_EVENT" // 单点位值事件 EVENT_MULTI_ITEM = "MULTI_ITEM_EVENT" // 多点位值事件 EVTNE_NOTIFY_KEY_FORMAT = "EVENT:NOFITY:%d:%s" // 事件通知通道 %d: 项目名称 %s: 事件名称 ) type ( // 事件信息 eventInfo struct { ProjectId int64 DeviceCode string Item string EventId int64 EventName string OldValue string NewValue string Time time.Time MsgTime time.Time } ) var ( eventChan chan eventInfo producter *rabbitMQ.Producter EventIntervalTable = map[string]time.Duration{ EVENT_SINGLE_ITEM: 1 * time.Second, EVENT_MULTI_ITEM: 60 * time.Second, } EventHandlerTable = map[string]func(ctx context.Context, task *job.Task, technologyName string) error{ EVENT_SINGLE_ITEM: EventSingle, EVENT_MULTI_ITEM: EventMulti, } ) func init() { eventChan = make(chan eventInfo, 50) }