In layman's terms, both Heroku Scheduler and Cron To Go are add-ons used for running background jobs at scheduled time intervals. While they both have similar purposes, they have many distinguishing characteristics, which leads us to the following question: How does one choose between them? Why not attempt to answer that using a good old comparison showdown? If you happen to be in a rush and are more interested in a quick tl;dr capture of the differences, we’ve got you covered - just scroll all the way down!

Flexible Scheduling

As flexible as a kitty cat waking up from a nap. Photo by Tamba Budiarsana from Pexels

Flexibility is important and a highly desirable characteristic, there’s no denying it. Whether it’s every 10 minutes, every hour, once a day, we want what we want when we want it...

Both Cron To Go and Heroku Scheduler provide you with the option to run scheduled jobs within these limits, but Cron To Go has much more to offer than that. You can define schedules with 60 second precision, using the familiar Unix cron format, so that your jobs run multiple times a day, on specific days and times of the week or month.

This round’s winner: Cron To Go.

Fully Managed Service

Don’t worry, it’s all manageable.

For this round, there is not much action going on, since both Cron To Go and Heroku Scheduler hide the complexities of their internal mechanisms so you don’t have to bother thinking about them and just focus on scheduling your tasks.

This round’s winner: Looks like we got ourselves a tie.

Reliable delivery

Nothing beats reliable delivery. No extra fees for fragile stuff. Photo by Ketut Subiyanto from Pexels

If scheduled jobs are a key factor in your application, you should really pay attention to this next part:

Heroku Scheduler is a free add-on, but it doesn’t guarantee that jobs will be executed at their scheduled time, or at all for that matter. While it is rare, the possibility that a job may be skipped or run twice does exist. Cron To Go provides enterprise-grade reliability when it comes to your cron jobs. Guaranteed at-least-once delivery to your job targets + automatic retries in the case that Heroku APIs timeout or return a bad response. Cron To Go still relies on Heroku APIs (in the same manner that Heroku Scheduler does), so in the case that there are issues that occur within Heroku, there is a chance your jobs won’t run. Considering there will be other issues for you to worry about when it comes to Heroku incidents, don’t worry too much.

This round’s winner: Cron To Go.

One-Off dynos support

Not Dinos - Dynos! Photo by Mike from Pexels

Dynos are basically a form of packaging apps into running containers helping to take the load off of app developers, allowing them to focus on their projects without the worry of having to manage the infrastructure. One-off dynos are temporary dynos, usually used to run maintenance (or “one-off”) tasks.

Both Cron To Go and Heroku Scheduler run the jobs you define using one-off dynos in your app. Keep in mind that one-off dynos will count towards your dyno usage for the month, but will always cost you less than 24/7 worker dynos.

This round’s winner: Another tie? This is getting interesting.

Monitoring and Logging

All eyes and screens are here to back you up.

Things don’t always go as planned, and if you haven’t learned your lesson yet, we recommend that you don’t take things for granted, given that there is always room for something to go wrong. Hence, it is extremely important to oversee job executions and ensure that everything is running as intended.

Cron To Go monitors your job executions and presents real-time logs to debug your tasks, in addition to sending you mail and webhook notifications. Now, that’s definitely not something to be taken for granted! Heroku Scheduler, on the other hand, doesn’t offer anything in terms of monitoring.

This round’s winner: Cron To Go.

Notifications

Stay in the loop, stay relevant. Photo from Alpha Stock Images

With Cron To Go, you have the option to receive notifications directly to your email in the case of job fails, via webhooks to automate processes in your app, or plug it into another monitoring system you’re using. Heroku Scheduler doesn’t provide any of this.

This round’s winner: Cron To Go.

Manage all schedules in one place

There’s no place like this place. Wait, what place? Photo by Tim Mossholder from Pexels

Both Cron To Go and Heroku Scheduler allow you to manage all of your automation tasks for your app within a single place through an easy-to-use UI. Cron To Go also allows to import jobs from other Cron To Go installations and add-ons (such as Heroku Scheduler and Temporize) to provide quick onboarding.

This round’s winner: Cron To Go.

Set jobs in different time zones

Don’t you just love those old-school analog clocks?

Cron To Go allows you to use alternative timezones, in addition to the default UTC, to utilize with jobs. This comes in extra handy when you want to align background task execution with consistent wallclock time and avoid the odd time offset when daylight savings switches occur. Heroku Scheduler only supports UTC as an option to execute daily jobs.

This round’s winner: Cron To Go.

Support

Always by your side. Photo by Zen Chung from Pexels

Got a problem? Help is just around the corner.

Both Heroku Scheduler and Cron To Go provide a variety of customer support options. Heroku Scheduler offers support through Heroku’s help center and support channels - depending on your plan, while Cron To Go offers real-time chat and email support and premium support,  providing answers to all your questions and helping you with your scheduling needs.

This round’s winner: It’s another tie, indeed!

APIs

Why take the stairs when you can use the elevator? Photo by Mitchell Luo from Pexels

There is no need for tedious manual work when you’ve got APIs. When you want to automate your job management, APIs are a must. Cron To Go’s APIs let you do exactly that and if you need any help, you can always reach out to the lovely support team mentioned in the previous round. Heroku Scheduler, on the other hand, doesn’t have any documented APIs to facilitate the service.

This round’s winner: Cron To Go.

Price

Piggy feeding time. Photo by maitree rimthong from Pexels

My grandma used to say “The Bitterness of poor quality remains long after the sweetness of low price is forgotten”, my grandma was a smart woman. Everyone wants to save a buck, but there are some areas where we shouldn't skimp.

Cron To Go may not be free like Heroku scheduler, but it is a production-grade service that provides priceless quality and reliability. Cron To Go also offers a one-week free-trial plan that gives you access to all its features. In the end, what you should consider is ROI and TCO, and with Cron To Go’s reliability and added value, the decision is easy. Just listen to your grandma!

This rounds winner: Cron To Go

Have we got a winner?

Those puppy eyes win my heart over no matter what

When it comes to the convenience of having all of your scheduling needs attended to in just one add-on, Cron To Go is the ultimate winner. That is not to say that Heroku scheduler is not a worthy opponent, having its benefits and perks and being a very broadly-used scheduling solution.

As mentioned previously, the Cron To Go free trial is always available to you if you would like to familiarize yourself better before making any decision. So feel free to check it out here! Most importantly, if you decide to make the switch from Heroku Scheduler to Cron To Go, it can be done with just a simple click of a button, making it a quick and easy transition!

Here are the main differences captured and summarized:

Cron To Go Heroku Scheduler
Flexible Scheduling X
Service level Fully managed Fully managed
One-Off dynos support X X
Monitoring and logging X
Notifications Email & webhooks
Reliable delivery Enterprise-grade reliability Not recommended for production apps
Manage all schedules in one place Migrate jobs from other apps & schedulers
Time zone support X
APIs X
Price 7 days free trial; Pricing starts at $9/month Free
Support In-app chat & premium support Heroku support



Post photo by Artem Podrez from Pexels