Skip to content

A Python boilerplate for Redis Queue workers, featuring advanced job handling, delayed task support, and robust scheduling

Notifications You must be signed in to change notification settings

ayukumar34/worknado

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Worknado

A Python project designed to bootstrap Redis Queue-based asynchronous workers using Redis Cloud. It provides a minimal yet scalable setup for building distributed task queues, with extensibility in mind for additional features.

✨ Features

  • πŸ”§ Minimal Redis Cloud Client Configuration
  • 🎯 Simple Redis Queue Worker with Job Queueing
  • πŸ“¦ Poetry-based dependency management
  • πŸ› οΈ Easily extendable for production use cases

πŸš€ Installation

  1. Install Poetry

  2. Clone the repository:

    git clone https://github.com/ayukumar34/worknado.git
    cd worknado
    
  3. Install dependencies:

    poetry lock
    poetry install
    
  4. Add the following environment variables to .env:

    REDIS_CLOUD_CLIENT_HOST="redis-XXXXX.XXXX.us-east-1-4.ec2.redns.redis-cloud.com"
    REDIS_CLOUD_CLIENT_PORT="XXXXX"
    REDIS_CLOUD_CLIENT_USERNAME="default"
    REDIS_CLOUD_CLIENT_PASSWORD="********************"
    
  5. Run the Redis Queue worker:

    poetry run python src/worknado/worker.py
    
  6. Enqueue a job payload:

     from rq import Queue
     from worknado.config.redis_config import redis_client
     
     queue = Queue("default", connection=redis_client)
     
     def say_hello(name: str):
         return f"Hello, {name}!"
     
     # Enqueue job
     job = queue.enqueue(simple_job, "Ayush")

πŸ“„ License

MIT License. Use this boilerplate freely for personal and commercial projects.

About

A Python boilerplate for Redis Queue workers, featuring advanced job handling, delayed task support, and robust scheduling

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages