1. import queue
  2. import time
  3. import datetime
  4. def export_queue_results(queue_name, results_file, retry_interval=5):
  5. """
  6. Exports results from a queue to a file, with fixed retry intervals.
  7. Args:
  8. queue_name (str): The name of the queue to export.
  9. results_file (str): The path to the file where results will be written.
  10. retry_interval (int): The number of seconds to wait before retrying
  11. to access the queue if it's temporarily unavailable.
  12. """
  13. try:
  14. q = queue.Queue() # Create a queue object (replace with your actual queue)
  15. # Simulate adding some items to the queue
  16. for i in range(10):
  17. q.put(f"Item {i}")
  18. with open(results_file, "w") as f:
  19. f.write(f"Queue: {queue_name}\n")
  20. f.write(f"Exported on: {datetime.datetime.now()}\n")
  21. f.write("-" * 30 + "\n")
  22. while True:
  23. try:
  24. # Attempt to get items from the queue. Handle empty queue gracefully.
  25. try:
  26. item = q.get(timeout=retry_interval) # wait up to retry_interval seconds
  27. f.write(f"Received: {item}\n")
  28. q.task_done() # Signal that the item is processed
  29. except queue.Empty:
  30. #Queue is empty, check if the queue is empty.
  31. if q.empty():
  32. break
  33. else:
  34. time.sleep(retry_interval)
  35. continue
  36. except Exception as e:
  37. print(f"Error accessing queue: {e}")
  38. time.sleep(retry_interval)
  39. continue
  40. print(f"Results exported to {results_file}")
  41. except Exception as e:
  42. print(f"An error occurred: {e}")
  43. if __name__ == "__main__":
  44. export_queue_results("my_queue", "queue_results.txt", retry_interval=2)

Add your comment