
Ask HN: Job Scheduling as a service - mani-smhack
	Is there any product that will allow us to schedule via an api , and then if the time is triggered then it should call the destination via webhook(with payload preferably )
Right now we are using quartz scheduler which has more configuration (Including Mysql Connection ) .<p>Cons are 1) Does not have an admin UI 2) No reporting or history of jobs<p>Thanks
======
scarface74
Nomad by Hashicorp. You have to do just a little legwork to get it to call an
API - just schedule a job that calls the appropriate curl command. When I'm
explaining it to people, I explain it is a "distributed cron". You schedule a
job either using the command line or via an API to the Nomad server and then
it runs the job on any box that has the Nomad agent running and registered to
the server. If you combine Nomad with Consul, configuration is dead simple.

[https://www.nomadproject.io](https://www.nomadproject.io)

~~~
bpicolo
Nomad is probably a bit overkill for cron. It's a whole k8s alternative isn't
it?

~~~
scarface74
It can be. But if you just need a distributed cron, you can just use the
raw_exec or exec driver type and run a shell command.

------
stephenr
You want cron, as a service?

Shit on a stick doesn't anyone actually host _anything_ themselves anymore?

~~~
mani-smhack
I need a scheduler where i can dynamically ( via api ) schedule a job , with
the admin UI to manage the jobs .

I Think these are not part of application development and it can be offloaded
to hosted services .

~~~
caraga
Jenkins has scheduled jobs and an UI. It can also be accessed via API.
[https://jenkins.io/](https://jenkins.io/)

~~~
mani-smhack
This is not with respect to devops or build .

My app has schedule functionality for example a scheduled report , so if it
where like a webhook call then i dont want to waste the cpu cycle ,now i am
using quartz scheduler in my java app .

~~~
aprdm
Jenkins isn't just for devops or build.

------
stevekemp
There are a few online tools, such as:

[https://www.easycron.com/](https://www.easycron.com/)

[https://www.setcronjob.com/](https://www.setcronjob.com/)

etc. You might be as well writing your own though, since it shouldn't be a
difficult task.

~~~
scarface74
I couldn't agree more, I am a Dev lead with a mandate to "outsource everything
possible" When it comes to infrastructure type stuff, but even he would look
at me crazy for outsourcing job scheduling.

------
egamirorrim
I'm surprised no one's mentioned Chronos - it takes a butt load of setup
because it runs on top of Mesos (which requires Zookeeper) etc - but if you
already have these tools in your stack it's a pretty tidy clustered scheduler:
[https://medium.com/airbnb-engineering/chronos-a-
replacement-...](https://medium.com/airbnb-engineering/chronos-a-replacement-
for-cron-f05d7d986a9d)

Edit: if you haven't got this stack around though i'd second calls to use a
build tool like Jenkins or Rundeck - of course you probably don't want this on
the same Jenkins that builds your jobs... so you'd have to set all that up

------
sahilagg06
[https://github.com/flipkart-
incubator/simpleJobScheduler](https://github.com/flipkart-
incubator/simpleJobScheduler)

------
cdoxsey
Google app engine has a cron service:

[https://cloud.google.com/appengine/docs/standard/python/conf...](https://cloud.google.com/appengine/docs/standard/python/config/cronref)

You'll have to create an app handler for the URL which can then make the
outbound http request. It's inexpensive, reliable and has an admin interface
and logs.

~~~
mani-smhack
Yeah this works for cron jobs . Let me explain my requirement , say i have
social media platform and users will schedule their post , and i need to
schedule it in my scheduler and i have to persist in the databsae too .
Because if the server is restarted all my scheduled jobs will be gone ..

So i am looking for a hosted scheduler where i can send a rest API request
with a webhook and a small payload . During the execution time the hosted
scheduler will call the webhook with the payload , so that i will publish the
post .

Pros is that i dont want to worry about the scheduled jobs .Right now i am
unable to find a scheduler with the good admin UI ( to pause all the jobs ) to
delete the trial users post .

~~~
stephenr
This sounds like a terrible way to achieve your goal.

Save the future posts to the database with the required publish date/time.

Run cron every $X minutes where $X is the smallest interval you allow (ie if
you force publish date to be rounded to 5 minutes, run cron every 5 minutes)
and check for "future posts" where the publish date <= now(), and take action.

This is pretty basic stuff and that you want to offload it to a 3rd party by
capturing _all_ the details into a request to be made back to your app is a
huge red flag IMO.

~~~
scarface74
He's posting an example. He mentioned multiple jobs.

------
BerislavLopac
Apache Airflow? It's not SaaS but is easily self-hosted, and I'm aware of a
few initiatives to make it into a service.

------
skibz
Operated by my coworker: [https://crontron.com](https://crontron.com)

------
aaronhoffman
Something like Azure Storage Queues and Functions may be what you're looking
for

[https://aaron-hoffman.blogspot.com/2017/01/replace-azure-
sch...](https://aaron-hoffman.blogspot.com/2017/01/replace-azure-scheduler-
with-azure.html)

------
macca321
[https://azure.microsoft.com/en-
gb/services/scheduler/](https://azure.microsoft.com/en-gb/services/scheduler/)

------
Daviey
I agree that Nomad is a GREAT solution for this... but another thing to look
at is Rundeck [http://rundeck.org/](http://rundeck.org/)

------
guilhas
I would use Jenkins, although marketed as CI tool, can do what you asked. And
has a lot of customization.

[https://jenkins.io/](https://jenkins.io/)

------
ako
Redwood software RunMyJob:
[https://www.redwood.com/runmyjobs/](https://www.redwood.com/runmyjobs/)

------
mani-smhack
Basically what i am looking is a quartz scheduler alternative with monitoring
and admin UI(preferrably hosted)

More like sendgrid.com for scheduling

------
_Marak_
I think hook.io can do this.

see: [http://hook.io/cron](http://hook.io/cron)

------
z0mbie42
with a friend we did :
[https://www.jobscheduler.xyz/](https://www.jobscheduler.xyz/) it's an MVP but
it works well for our projects (chatbot, emailing service...)

------
assafmo
webhook.io works great for me. they also have a great free plan

~~~
jnbiche
webhook.io is now defunct. They either shut it already down or will soon shut
it down.

I think webtask.io is somewhat similar.

Also, iron.io lets you schedule functions using docker, has full API.

AWS Lambda also lets you schedule Lambda and has full API.

~~~
assafmo
sorry i meant webtask.io!

------
aprdm
You can use Jenkins.

------
podhy
Rundeck

