From bad9acc2e08472144c15874620ef83c0eb908790 Mon Sep 17 00:00:00 2001 From: Minh Nguyen Date: Fri, 25 Mar 2022 15:15:51 +0700 Subject: [PATCH] fix --- go.mod | 2 +- go.sum | 2 ++ sync_to_service.go | 69 +++++++++++++++++++++++++++++----------------- 3 files changed, 46 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 483b86f..5b59a0f 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/Selly-Modules/natsio v0.0.0-20220321031929-3fe4271f1bbc - github.com/Selly-Modules/redisdb v1.0.1-0.20220325073544-1ab40b99b8b9 + github.com/Selly-Modules/redisdb v1.0.1-0.20220325075428-59ae8ffc4812 github.com/robfig/cron/v3 v3.0.1 ) diff --git a/go.sum b/go.sum index f99613e..cb07f4e 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,8 @@ github.com/Selly-Modules/redisdb v1.0.1-0.20220325035325-562d8c6f642c h1:GP+wjV8 github.com/Selly-Modules/redisdb v1.0.1-0.20220325035325-562d8c6f642c/go.mod h1:J2GWyoHN5b8RfZXUJmGnEFw7Z4UIogUM4Ry76DstktQ= github.com/Selly-Modules/redisdb v1.0.1-0.20220325073544-1ab40b99b8b9 h1:TTI8SL4lPHRhxqHi0OGC2uFJCrNq9/l47pkZmtjAj5I= github.com/Selly-Modules/redisdb v1.0.1-0.20220325073544-1ab40b99b8b9/go.mod h1:J2GWyoHN5b8RfZXUJmGnEFw7Z4UIogUM4Ry76DstktQ= +github.com/Selly-Modules/redisdb v1.0.1-0.20220325075428-59ae8ffc4812 h1:Y2/O7z/nkcapWGtqVrJtK3q+aDCwp/vsPchpWTQRdY0= +github.com/Selly-Modules/redisdb v1.0.1-0.20220325075428-59ae8ffc4812/go.mod h1:J2GWyoHN5b8RfZXUJmGnEFw7Z4UIogUM4Ry76DstktQ= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= diff --git a/sync_to_service.go b/sync_to_service.go index c4cf49f..cf3389e 100644 --- a/sync_to_service.go +++ b/sync_to_service.go @@ -37,36 +37,12 @@ func handleSyncDataToServiceAppier(pattern string, typeData string) { fmt.Println("keyProductPattern", pattern) for { - keys, values := redisdb.GetWithPrefixPattern(pattern, limitGetKeyRedis) + keys, values := redisdb.GetWithPrefixPattern(pattern) if len(keys) == 0 { return } - fmt.Println("keys:", keys) - fmt.Println("values", values) - - payload := toBytes(values) - // Convert data - switch typeData { - case RedisSyncProduct: - Pull{}.ProductUpsert(payload) - case RedisSyncSKU: - Pull{}.SKUUpsert(payload) - case RedisSyncCategory: - Pull{}.CategoryUpsert(payload) - case RedisSyncSubCategory: - Pull{}.SubCategoryUpsert(payload) - case RedisSyncInventory: - Pull{}.InventoryUpsert(payload) - case RedisSyncBrand: - Pull{}.BrandUpsert(payload) - case RedisSyncSupplier: - Pull{}.SupplierUpsert(payload) - case RedisSyncProperty: - Pull{}.PropertyUpsert(payload) - case RedisSyncPropertyValue: - Pull{}.PropertyValueUpsert(payload) - } + processSyncToServiceAppier(typeData, values) // Del keys for _, key := range keys { @@ -74,3 +50,44 @@ func handleSyncDataToServiceAppier(pattern string, typeData string) { } } } + +// processSyncToServiceAppier ... +func processSyncToServiceAppier(typeData string, values []string) { + for { + if len(values) <= 20 { + syncDataByList(typeData, values) + break + } + + var list = values[0:19] + syncDataByList(typeData, list) + values = values[20:] + } + return +} + +// syncDataByList ... +func syncDataByList(typeData string, data []string) { + payload := toBytes(data) + // Convert data + switch typeData { + case RedisSyncProduct: + Pull{}.ProductUpsert(payload) + case RedisSyncSKU: + Pull{}.SKUUpsert(payload) + case RedisSyncCategory: + Pull{}.CategoryUpsert(payload) + case RedisSyncSubCategory: + Pull{}.SubCategoryUpsert(payload) + case RedisSyncInventory: + Pull{}.InventoryUpsert(payload) + case RedisSyncBrand: + Pull{}.BrandUpsert(payload) + case RedisSyncSupplier: + Pull{}.SupplierUpsert(payload) + case RedisSyncProperty: + Pull{}.PropertyUpsert(payload) + case RedisSyncPropertyValue: + Pull{}.PropertyValueUpsert(payload) + } +}