| | |
| | | |
| | | if isMaster { |
| | | s.Every(20).Seconds().Do(SyncProductionProgress) //同步生产数据 |
| | | //s.Every(30).Seconds().Do(SyncTaskStatus) //同步任务状态 |
| | | s.Every(10).Seconds().Do(CheckNsqConn) //查询nsq连接 |
| | | s.Every(30).Seconds().Do(ReportData) //上报数据 |
| | | s.Every(30).Seconds().Do(SyncTaskStatus) //同步任务状态 |
| | | s.Every(10).Seconds().Do(CheckNsqConn) //查询nsq连接 |
| | | s.Every(30).Seconds().Do(ReportData) //上报数据 |
| | | } |
| | | |
| | | s.Every(20).Seconds().Do(QueryClusterStatus) //查询集群节点数量 |
| | |
| | | var syncTables = []string{ |
| | | "procedures", |
| | | "process_model", |
| | | "production_progress", |
| | | "work_order", |
| | | "task_status_sync", |
| | | "device", |
| | |
| | | package model |
| | | |
| | | import ( |
| | | "apsClient/pkg/snowflake" |
| | | "encoding/json" |
| | | "github.com/jinzhu/gorm" |
| | | "strconv" |
| | | "time" |
| | | ) |
| | | |
| | | type BigID uint |
| | | |
| | | type CommonModel struct { |
| | | ID uint `gorm:"primary_key" json:"-"` |
| | | Id BigID `json:"ID"` |
| | | ID uint `gorm:"primary_key" json:"ID,string"` |
| | | CreatedAt time.Time |
| | | UpdatedAt time.Time |
| | | DeletedAt *time.Time `sql:"index"` |
| | | } |
| | | |
| | | func (c *CommonModel) BeforeCreate(db *gorm.DB) { |
| | | if c.ID == 0 { |
| | | id := snowflake.GenerateID() |
| | | if id < 0 { |
| | | // 处理 ID 为负数的情况(可选) |
| | | id = snowflake.GenerateID() |
| | | } |
| | | c.ID = uint(id) |
| | | } |
| | | } |
| | | |
| | | func (id *BigID) UnmarshalJSON(b []byte) error { |
| | | var idString string |
| | | if err := json.Unmarshal(b, &idString); err != nil { |
| | | return err |
| | | } |
| | | |
| | | idValue, err := strconv.ParseUint(idString, 10, 64) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | |
| | | *id = BigID(idValue) |
| | | return nil |
| | | } |
| | | |
| | | func (id *BigID) MarshalJSON() ([]byte, error) { |
| | | idString := strconv.FormatUint(uint64(*id), 10) |
| | | return []byte(idString), nil |
| | | } |