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 // 项目ID DeviceCode string // 设备位号 Item string // 点位名称 EventId int64 // 事件ID 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: 2 * 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) }