It means you can make your application do something in the future: send an HTTP request every morning at dawn, email your users on their birthday, call yourself in 15 minutes… all that and more in just 2 lines of code.
import crono crono.call('+1 (555) 555-5555').after(minutes=15)
Some more examples:
crono.log('DEBUG', 'foo').after(seconds=42) crono.request('GET', 'https://url.com/').on(tomorrow_datetime) crono.message('+1 (555) 555-5555', 'foo').every(minutes=42) crono.call('+1 (555) 555-5555', 'bar').at('1145 jan 31') crono.email('firstname.lastname@example.org', 'foo').cron('0 6 * * 2')
How does it work?
Crono is built on top of Celery, an open-source distributed task queue trusted by companies to process millions of tasks a day. Crono also uses RedBeat to store the schedule in Redis rather than within the process space of the Celery Beat daemon.
The main benefit of Crono is the super easy-to-use API it offers to developers.
Triggers define when a job will be executed.
afterspecifies a countdown until the execution of a task
onspecifies the execution of a task at a specific date and time
atimplements the command at in Unix-like operating systems
everyspecifies a frequency at which to execute a task
cronuses an expression to specify the execution time
Tasks define what a job will do.
loguses the logging Python Standard Library
requestsends an HTTP request (powered by Requests)
messagesends an SMS (powered by Twilio)
callinitiates a phone call (powered by Twilio)
Tasks and triggers are commutative, meaning changing their order does not change the result.
crono.call('+1 (555) 555-5555', 'hello').after(minutes=15) # is the same as crono.after(minutes=15).call('+1 (555) 555-5555', 'hello')
Want to read more technical documentation? README.md
How much does it cost?
The Crono codebase is free and open-source on GitHub. You can get it now, deploy it, and run it on your own servers. Or, you can use the hosted version. It's not free but you don't have to worry about anything and you can get started in just a few minutes.
|Support||GitHub issues||emails||priority emails (< 24hr)|
|Price||free to use||$14/month
|GitHub repo||Get started||Get started|
If you need more than 10,000 executions per month, let's chat: email@example.com
What are the alternatives?
You've probably heard of
cron, the Unix utility to schedule jobs to run periodically at fixed times, dates, or intervals. A lot of companies still rely on it.
cron is simple to set up but it runs on a single machine, it does not scale, it's error-prone, and it's hard to debug.
For all those reasons, more sophisticated tech companies have replaced
cron with their own solutions: Airbnb’s Chronos, Yelp’s Tron, NextDoor’s NDScheduler… Those solutions are distributed and more reliable but hard to deploy and maintain.
Crono is the best of both worlds, simple and reliable. It is aimed toward product engineers who want to get something up and running as efficiently as possible.
Who makes it?
I am Georges Duverger. I worked as a software engineer for 10 years before transitioning to product management in 2015. I worked at 4 technology startups (Akoha, Hunch, Phosphorus, and Nautilus Labs) and 1 multinational corporation (eBay). Along the way, I launched my own products (Fitmeal, Crono, CTRL+F) and open-source projects (Screen, PlainChart, Print).
Made in Cambridge, MA ☘️