Migration Guide
No dyno spinup. No 10-minute minimum. Proper failure alerting.
Open your Heroku app → More → Scheduler. Note each task's command and schedule (10 min, hourly, or daily).
For each scheduler task that runs a command, add a protected HTTP route to your app that performs the same action.
// Express example
app.post('/cron/cleanup', authenticate, async (req, res) => {
await runCleanup();
res.json({ ok: true });
});Deploy the new routes to Heroku. Test each endpoint manually.
For each task, create a JustRun job: paste the endpoint URL, set the matching schedule. Use the visual wizard or CLI: npx @justrun/cli create.
Configure Slack, Discord, or PagerDuty alerts in JustRun. Heroku Scheduler has no failure alerting.
Once JustRun jobs are verified, delete each task from Heroku Scheduler.
Heroku Scheduler has no export API. Tasks must be recreated. But exposing them as HTTP endpoints is a one-time change that also makes them testable and observable.
Yes. JustRun's Hobby plan ($3/mo) supports 1-minute intervals. Scale plan supports 10-second intervals.
Your HTTP endpoint already has access to Heroku config vars — no change needed. JustRun just triggers the endpoint.