mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 16:00:25 +08:00 
			
		
		
		
	
		
			
	
	
		
			29 lines
		
	
	
		
			561 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			561 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package scheduling
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "github.com/iwind/TeaGo/maps"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 所有请求类型
							 | 
						||
| 
								 | 
							
								func AllSchedulingTypes() []maps.Map {
							 | 
						||
| 
								 | 
							
									types := []maps.Map{}
							 | 
						||
| 
								 | 
							
									for _, s := range []SchedulingInterface{
							 | 
						||
| 
								 | 
							
										new(RandomScheduling),
							 | 
						||
| 
								 | 
							
										new(RoundRobinScheduling),
							 | 
						||
| 
								 | 
							
										new(HashScheduling),
							 | 
						||
| 
								 | 
							
										new(StickyScheduling),
							 | 
						||
| 
								 | 
							
									} {
							 | 
						||
| 
								 | 
							
										summary := s.Summary()
							 | 
						||
| 
								 | 
							
										summary["instance"] = s
							 | 
						||
| 
								 | 
							
										types = append(types, summary)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return types
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func FindSchedulingType(code string) maps.Map {
							 | 
						||
| 
								 | 
							
									for _, summary := range AllSchedulingTypes() {
							 | 
						||
| 
								 | 
							
										if summary["code"] == code {
							 | 
						||
| 
								 | 
							
											return summary
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return nil
							 | 
						||
| 
								 | 
							
								}
							 |