Project

kaal

0.0
No release in over 3 years
Kaal is a distributed cron scheduler for Ruby that safely executes scheduled tasks across multiple nodes.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 1.8
>= 7.1, < 9.0
 Project Readme

Kaal

Kaal is a distributed cron scheduler for Ruby that safely executes scheduled tasks across multiple nodes.

Gem CI Maintainability Code Coverage License PostgreSQL Redis


🧭 Project Structure

This repository contains the Kaal gem and its documentation site.


/repo-root
β”œβ”€β”€ .github/              # CI workflows, issue templates
β”œβ”€β”€ kaal/           # Gem source (lib/, bin/, gemspec)
β”œβ”€β”€ docs/                 # Documentation site (Jekyll + Markdown)
└── README.md             # This file

🧩 What It Does

kaal lets you register, schedule, and safely run recurring tasks across multiple Ruby nodes.
It ensures exactly-once dispatching per cron tick using distributed locks via Redis or PostgreSQL advisory locks.

It’s scheduler-agnostic and works with any background job system (ActiveJob, Sidekiq, Resque, etc.), while exposing a clean Ruby API, CLI, and Rails integration.


πŸ“š Documentation

Comprehensive guides are published at:

πŸ‘‰ https://kaal.codevedas.com

Section Description
Overview & Motivation Why Kaal exists
Installation & Setup Gem setup and initializer
Usage Registering jobs, CLI, and Rake tasks
FAQ / Troubleshooting Common issues and fixes

πŸ› οΈ Local Development

1. Clone and setup

git clone https://github.com/CodevedasInc/kaal.git
cd kaal
bundle install

2. Run specs

bin/rspec-unit

3. Lint and format

bin/rubocop

4. Reek

bin/Reek

πŸ§ͺ Running the Gem Locally

You can load a local version of the gem in a test Rails app:

gem build kaal.gemspec
gem install ./kaal-0.1.0.gem

Or reference it directly in another app’s Gemfile:

gem "kaal", path: "../kaal/kaal"

πŸš€ Docs Site (Jekyll)

The docs/ directory is a Jekyll site used for GitHub Pages.

Run locally

cd docs
bundle install
bundle exec jekyll serve

Then open: πŸ‘‰ http://localhost:4000


βš™οΈ Continuous Integration

GitHub Actions workflows include:

Workflow Purpose
ci.yml Runs tests (RSpec + RuboCop) on all Ruby versions
release.yml Builds and publishes gem to RubyGems
jekyll-gh-pages.yml Builds and deploys docs to GitHub Pages

Contributing, Security, Conduct


πŸ“„ License

Released under the MIT License Β© 2025 Codevedas Inc. β€” All rights reserved.