Tasker is a lightweight, distributed job scheduler designed to handle HTTP tasks asynchronously. Built with Go, it leverages a microservices architecture to efficiently manage task queuing, execution, and status tracking.
Tasker comprises two decoupled microservices:
-
API Server
Handles incoming task submissions via HTTP, persists them to a PostgreSQL database, and provides endpoints to query task statuses. -
Agent Worker
Continuously polls the database for new tasks, executes them concurrently, and updates their statuses upon completion.
- Asynchronous HTTP task execution
- Concurrent task processing with Go routines
- RESTful API for task management
- PostgreSQL integration for reliable persistence
- Modular microservices architecture
- Environment-based configuration
Set the PostgreSQL connection string using the DATABASE_DSN
environment variable:
export DATABASE_DSN="postgres://user:password@localhost:5432/tasker_db?sslmode=disable"