fix #15
			
				
			
		
		
		
	
							
								
								
									
										2
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										2
									
								
								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
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										2
									
								
								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=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue