flashdb_tsdb1.py 921 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import flashdb
  2. import struct
  3. import time
  4. import os
  5. DB_PATH = "test/out/fdb_tsdb"
  6. tsdb = flashdb.TSDB("env", DB_PATH, max_len=512)
  7. tic = time.time() * 1000
  8. for i in range(10):
  9. blob_i = struct.pack('i', i)
  10. time.sleep(0.001)
  11. ret = tsdb.tsl_append(blob_i)
  12. toc = time.time() * 1000
  13. assert ret == 0
  14. sum_by_time = 0
  15. def callback(tsl, user_data) -> int:
  16. global sum_by_time
  17. # print(tsl.get_time(), tsl.to_blob())
  18. t = tsl.get_time()
  19. blob_i = tsl.to_blob()
  20. i = struct.unpack('i', blob_i)[0]
  21. print(t, i, user_data)
  22. if user_data == 'user_data_by_time':
  23. sum_by_time += i
  24. return False # False: continue, True: stop
  25. assert tsdb.tsl_iter(callback, 'user_data') == 0
  26. assert tsdb.tsl_iter_reverse(callback, 'user_data_reverse') == 0
  27. print('toc - tic', toc - tic)
  28. assert tsdb.tsl_iter_by_time(tic, toc, callback, 'user_data_by_time') == 0
  29. assert sum_by_time == 45
  30. print('PASS')