mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
fix: batch insert conflict bug (resolve #139)
This commit is contained in:
parent
4f86f67716
commit
292ae41c58
@ -32,7 +32,7 @@ type Heartbeat struct {
|
|||||||
Hash string `json:"-" gorm:"type:varchar(17); uniqueIndex"`
|
Hash string `json:"-" gorm:"type:varchar(17); uniqueIndex"`
|
||||||
Origin string `json:"-" hash:"ignore"`
|
Origin string `json:"-" hash:"ignore"`
|
||||||
OriginId string `json:"-" hash:"ignore"`
|
OriginId string `json:"-" hash:"ignore"`
|
||||||
CreatedAt CustomTime `json:"created_at" gorm:"type:timestamp" swaggertype:"primitive,number"` // https://gorm.io/docs/conventions.html#CreatedAt
|
CreatedAt CustomTime `json:"created_at" gorm:"type:timestamp" swaggertype:"primitive,number" hash:"ignore"` // https://gorm.io/docs/conventions.html#CreatedAt
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Heartbeat) Valid() bool {
|
func (h *Heartbeat) Valid() bool {
|
||||||
|
@ -27,7 +27,18 @@ func (srv *HeartbeatService) Insert(heartbeat *models.Heartbeat) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *HeartbeatService) InsertBatch(heartbeats []*models.Heartbeat) error {
|
func (srv *HeartbeatService) InsertBatch(heartbeats []*models.Heartbeat) error {
|
||||||
return srv.repository.InsertBatch(heartbeats)
|
hashes := make(map[string]bool)
|
||||||
|
|
||||||
|
// https://github.com/muety/wakapi/issues/139
|
||||||
|
filteredHeartbeats := make([]*models.Heartbeat, 0, len(heartbeats))
|
||||||
|
for _, hb := range heartbeats {
|
||||||
|
if _, ok := hashes[hb.Hash]; !ok {
|
||||||
|
filteredHeartbeats = append(filteredHeartbeats, hb)
|
||||||
|
hashes[hb.Hash] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return srv.repository.InsertBatch(filteredHeartbeats)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (srv *HeartbeatService) Count() (int64, error) {
|
func (srv *HeartbeatService) Count() (int64, error) {
|
||||||
|
@ -1 +1 @@
|
|||||||
1.24.5
|
1.24.6
|
||||||
|
Loading…
Reference in New Issue
Block a user