import queue
import time
import datetime
def export_queue_results(queue_name, results_file, retry_interval=5):
"""
Exports results from a queue to a file, with fixed retry intervals.
Args:
queue_name (str): The name of the queue to export.
results_file (str): The path to the file where results will be written.
retry_interval (int): The number of seconds to wait before retrying
to access the queue if it's temporarily unavailable.
"""
try:
q = queue.Queue() # Create a queue object (replace with your actual queue)
# Simulate adding some items to the queue
for i in range(10):
q.put(f"Item {i}")
with open(results_file, "w") as f:
f.write(f"Queue: {queue_name}\n")
f.write(f"Exported on: {datetime.datetime.now()}\n")
f.write("-" * 30 + "\n")
while True:
try:
# Attempt to get items from the queue. Handle empty queue gracefully.
try:
item = q.get(timeout=retry_interval) # wait up to retry_interval seconds
f.write(f"Received: {item}\n")
q.task_done() # Signal that the item is processed
except queue.Empty:
#Queue is empty, check if the queue is empty.
if q.empty():
break
else:
time.sleep(retry_interval)
continue
except Exception as e:
print(f"Error accessing queue: {e}")
time.sleep(retry_interval)
continue
print(f"Results exported to {results_file}")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
export_queue_results("my_queue", "queue_results.txt", retry_interval=2)
Add your comment