main.go 815 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package main
  2. import (
  3. "fmt"
  4. "math/rand"
  5. "sync/atomic"
  6. "time"
  7. "github.com/langgenius/dify-plugin-daemon/internal/types/entities"
  8. )
  9. func main() {
  10. response := entities.NewInvocationResponse[string](1024)
  11. random_string := func() string {
  12. return fmt.Sprintf("%d", rand.Intn(100000))
  13. }
  14. traffic := new(int64)
  15. go func() {
  16. for {
  17. response.Write(random_string())
  18. }
  19. }()
  20. go func() {
  21. for {
  22. response.Write(random_string())
  23. }
  24. }()
  25. go func() {
  26. for response.Next() {
  27. atomic.AddInt64(traffic, 1)
  28. _, err := response.Read()
  29. if err != nil {
  30. fmt.Println(err)
  31. break
  32. }
  33. }
  34. }()
  35. go func() {
  36. for range time.NewTicker(time.Second).C {
  37. fmt.Printf("Traffic: %d, Unsolved: %d\n", atomic.LoadInt64(traffic), response.Size())
  38. atomic.StoreInt64(traffic, 0)
  39. }
  40. }()
  41. select {}
  42. }