Simple task manager and job queue for distributed rendering. Built on celery and redis.
Project description
A super simple way to distribute rendering tasks across multiple machines.
Installation
pip install distributaur
Development
Prerequisites
- Python 3.8 or newer (tested on 3.10)
- Redis server
- Celery
Setup
Clone the repository and navigate to the project directory:
git clone https://github.com/RaccoonResearch/distributaur.git
cd distributaur
Install the required packages:
pip install -r requirements.txt
Install the distributaur package:
python setup.py install
Configuration
Create a .env
file in the root directory of your project or set environment variables to match your setup:
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_USER=user
REDIS_PASSWORD=password
VAST_API_KEY=your_vast_api_key
Getting Started
Starting the Worker
To start processing tasks, you need to run a worker. You can start a worker using the provided script:
sh scripts/kill_redis_connections.sh # Optional: to clear previous Redis connections
celery -A distributaur.core worker --loglevel=info
Running an Example Task
To run an example task and see Distributaur in action, you can execute the example script provided in the project:
python example.py
This script configures the environment, registers a sample function, dispatches a task, and monitors its execution.
API Reference
Core Functionality
- register_function(func): Decorator to register a function that can be called as a task.
- execute_function(func_name, args): Dispatch a registered function as a task with specified arguments.
Task Management
- update_function_status(task_id, status): Update the status of a task in Redis.
- monitor_job_status(job_id): Monitor the status of a job and output updates.
VAST.ai Integration
- rent_nodes(max_price, max_nodes, image, api_key): Rent nodes from VAST.ai based on specified criteria.
- terminate_nodes(nodes): Terminate rented nodes on VAST.ai.
Contributing
Contributions are welcome! For major changes, please open an issue first to discuss what you would like to change.
License
This project is licensed under the MIT License - see the LICENSE
file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for distributaur-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f92fda3d68ba4854d8b741142fede2ac53e34507a39b2da0c957782470016f65 |
|
MD5 | db070adb8f72d8838cdea6c4c7cefb9e |
|
BLAKE2b-256 | 90f60ccbd658d7ee72a06d82ee52d042f814276d03fdfd9da80a103f883a658a |