mirror of
				https://github.com/Oxalide/vsphere-influxdb-go.git
				synced 2023-10-10 11:36:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			795 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			795 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package statement
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/influxdata/influxdb/stress/v2/stress_client"
 | |
| )
 | |
| 
 | |
| // GoStatement is a Statement Implementation to allow other statements to be run concurrently
 | |
| type GoStatement struct {
 | |
| 	Statement
 | |
| 
 | |
| 	StatementID string
 | |
| }
 | |
| 
 | |
| // SetID statisfies the Statement Interface
 | |
| func (i *GoStatement) SetID(s string) {
 | |
| 	i.StatementID = s
 | |
| }
 | |
| 
 | |
| // Run statisfies the Statement Interface
 | |
| func (i *GoStatement) Run(s *stressClient.StressTest) {
 | |
| 	// TODO: remove
 | |
| 	switch i.Statement.(type) {
 | |
| 	case *QueryStatement:
 | |
| 		time.Sleep(1 * time.Second)
 | |
| 	}
 | |
| 
 | |
| 	s.Add(1)
 | |
| 	go func() {
 | |
| 		i.Statement.Run(s)
 | |
| 		s.Done()
 | |
| 	}()
 | |
| }
 | |
| 
 | |
| // Report statisfies the Statement Interface
 | |
| func (i *GoStatement) Report(s *stressClient.StressTest) string {
 | |
| 	return fmt.Sprintf("Go %v", i.Statement.Report(s))
 | |
| }
 |