Usage

This guide explains how to use the queue management system provided by the queue.py module and interact with it via the command-line interface (CLI) defined in cli.py.

Queue Module

The queue.py module provides a priority-based queue system with persistence support.

Features:

  • Add commands with a priority (1-10).

  • Automatically sorts commands based on priority.

  • Stores and loads the queue state using a file (queue.pkl).

Example Usage:

from queue_test.queue import Queue

# Initialize a queue
queue = Queue()

# Add commands to the queue
queue.add({"cmd": "Start backup", "priority": 2})
queue.add({"cmd": "Restart server", "priority": 1})

# Process commands
for command in queue:
    print(f"Command: {command.cmd}, Priority: {command.priority}")

Command-Line Interface (CLI)

The cli.py script provides a simple CLI for interacting with the queue system.

Installation:

Ensure queue_test is in your Python path, and install required dependencies:

virtualenv .venv
source .venv/bin/activate
pip install -r requirements_dev.txt
pip install .

Commands:

add

Adds a new command to the queue.

Usage:

python cli.py add '{"cmd": "Task description", "priority": 1}'

Example:

python cli.py add '{"cmd": "Run diagnostics", "priority": 5}'

This will add the command "Run diagnostics" with a priority of 5 to the queue.

run

Processes all commands in the queue in priority order.

Usage:

python cli.py run

Example Output:

Queue size: 2
- Command: Task description...............priority: 1
- Command: Run diagnostics................priority: 5
The whole queue was ran successfully.

How It Works:

  • The run command retrieves and removes each command from the queue, printing details to the console in priority order.

  • After processing, the queue is emptied.

Notes:

  • Command priorities must be integers between 1 and 10. Lower numbers indicate higher priority.

  • The queue state is persisted in a file (queue.pkl) to maintain data across runs.

Feel free to reach out for more information or enhancements.