Skip to main content

A Python package for handling multiple concurrent tasks using multiprocessing and multithreading.

Project description

CD Multi Tasker

cd_multi_tasker is a Python package designed to handle multiple concurrent tasks efficiently. It supports both CPU-bound and I/O-bound tasks, using multiprocessing for CPU-intensive operations and multithreading for I/O-bound operations.

Features

  • Multiprocessing for CPU-bound tasks such as file processing.
  • Multithreading for I/O-bound tasks such as HTTP requests.
  • Easy-to-use interface for running concurrent tasks.

Installation

To install the package, use:

pip install cd_multi_tasker

Usage

Importing the Package

from cd_multi_tasker import MultiTasking

Example: CPU-bound Tasks (File Processing)

# Initialize the MultiTasking class
multitasker = MultiTasking(max_workers=4)

# Define a sample task function for file processing
def process_file(file_path):
    """
    Dummy function to simulate file processing.
    Replace with actual file processing logic.
    
    Parameters:
        file_path (str): Path to the file to process.
    
    Returns:
        str: Dummy result message.
    """
    return f"Processed file {file_path}"

# List of file paths to process
file_paths = ["/path/to/file1", "/path/to/file2", "/path/to/file3"]

# Run the tasks
results = multitasker.run_cpu_bound_tasks(file_paths, process_file)
print("File processing results:", results)

Example: I/O-bound Tasks (HTTP Requests)

# Initialize the MultiTasking class
multitasker = MultiTasking(max_workers=4)

# Define a sample task function for HTTP requests
def fetch_data(url):
    """
    Dummy function to simulate fetching data from a URL.
    Replace with actual HTTP request logic.
    
    Parameters:
        url (str): URL to fetch data from.
    
    Returns:
        str: Dummy response message.
    """
    return f"Fetched data from {url}"

# List of URLs to fetch data from
urls = ["http://example.com/data1", "http://example.com/data2"]

# Run the tasks
results = multitasker.run_io_bound_tasks(urls, fetch_data)
print("HTTP fetching results:", results)

Class and Methods

MultiTasking

__init__(self, max_workers)

  • Initializes the MultiTasking class with the maximum number of workers.
  • Parameters:
    • max_workers (int): Maximum number of concurrent tasks.

run_cpu_bound_tasks(self, tasks, task_func, *args, **kwargs)

  • Executes multiple CPU-bound tasks concurrently using multiprocessing.
  • Parameters:
    • tasks (list): List of tasks to be processed (e.g., file paths for processing).
    • task_func (callable): Function to run for each task.
    • *args: Variable length argument list for the task function.
    • **kwargs: Arbitrary keyword arguments for the task function.
  • Returns:
    • list: Results of the tasks.

run_io_bound_tasks(self, tasks, task_func, *args, **kwargs)

  • Executes multiple I/O-bound tasks concurrently using multithreading.
  • Parameters:
    • tasks (list): List of tasks to be processed (e.g., URLs for web requests).
    • task_func (callable): Function to run for each task.
    • *args: Variable length argument list for the task function.
    • **kwargs: Arbitrary keyword arguments for the task function.
  • Returns:
    • list: Results of the tasks.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

More Info

For more information, visit codedocta.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cd_multi_tasker-0.1.2.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

cd_multi_tasker-0.1.2-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file cd_multi_tasker-0.1.2.tar.gz.

File metadata

  • Download URL: cd_multi_tasker-0.1.2.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.7 Windows/10

File hashes

Hashes for cd_multi_tasker-0.1.2.tar.gz
Algorithm Hash digest
SHA256 95e2d4d8ef6417efc73c599e1b7e049ba5ffa81ff8fe14f2d4729af1d9269516
MD5 c74831ddeb612b207a508a3d8bb1d828
BLAKE2b-256 a307a472b710d9c75bde993765f64f3be3e65ddad76dd1f1c2b82520bd9a53e6

See more details on using hashes here.

File details

Details for the file cd_multi_tasker-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for cd_multi_tasker-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 642c5bc397e603918a7f3324aaf25c9f40be5239a2f7da5be7210bea585de9ab
MD5 da8ca3975ff1ef72aaa89c609e51c4a9
BLAKE2b-256 2624b37c3bbbd8407ab9bc82bfd0a3005b34826d22b880b58e95fa3f1f1dc2a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page