test_run_async_server.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import time
  2. import pprint
  3. import requests
  4. import sseclient # sseclient-py
  5. import sys
  6. import os
  7. import threading
  8. parent_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..')
  9. sys.path.append(parent_dir)
  10. server_port = 20021
  11. # from lianqi_server.run_server_async import server_port
  12. def test_sse(tid, question):
  13. url = f'http://127.0.0.1:{server_port}/subscribe/{question}'
  14. stream_response = requests.get(url, stream=True)
  15. client = sseclient.SSEClient(stream_response)
  16. # Loop forever (while connection "open")
  17. for event in client.events():
  18. print ("got a new event from server")
  19. pprint.pprint(f'data from thread {tid}: {event.data}')
  20. def test(tid, question):
  21. url = f'http://127.0.0.1:{server_port}/subscribe/{question}'
  22. # stream_response = requests.get(url, stream=True)
  23. client = sseclient.SSEClient(url)
  24. # Loop forever (while connection "open")
  25. max_len = 0
  26. for event in client:
  27. # print ("got a new event from server")
  28. if len(event.data) > max_len:
  29. max_len = len(event.data)
  30. pprint.pprint(f'data from thread {tid}, {event.event}, data length: {len(event.data)}')
  31. if __name__ == '__main__':
  32. question = '通常是几月到几月 采购电缆的需求比较多?'
  33. tlist = []
  34. for idx in range(3):
  35. thread = threading.Thread(target=test, args=(idx, question))
  36. tlist.append(thread)
  37. thread.start()
  38. time.sleep(2)
  39. for thread in tlist:
  40. thread.join()
  41. print("All threads have finished execution.")