Python apps
Schedule Python jobs
Run a job every 5 or 15 minutes, every hour, or daily at a time in Indian Standard Time, and check every run on the Cron jobs page.
On this page
A job can run on its own on a schedule, like a cron job on a server. You pick the schedule from a list; FiniteHost handles the timer. All times are Indian Standard Time (IST, Asia/Kolkata), whatever time zone your computer is in.
Before you start#
- Create the app first, in Job mode. See Run Python apps from the panel. Workers keep running and do not take a schedule.
- Upload the code and test it once with Run now, so you know it works before it runs unattended.
The schedules you can choose#
| Schedule | When it runs |
|---|---|
| Only when I press Run | Never on its own. Use Run now. |
| Every 5 minutes | At :00, :05, :10 … every hour |
| Every 15 minutes | At :00, :15, :30 and :45 |
| Every hour | At the start of every hour |
| Daily at a time (IST) | Once a day at the time you pick, for example 09:30 |
A run starts within about 50 seconds of the exact time (the server adds a small random delay so that many jobs do not all start in the same second). Do not rely on a job starting at an exact second.
Set a schedule#
- Open Python apps and go to Create an app.
- Choose Mode: Job: runs, then stops. The Schedule list appears.
- Pick a schedule. For Daily at a time (IST) a Daily time (IST) box appears; enter the time, for example
09:30. - Press Create app, then upload your code.
- Press Enable schedule on the app's card. Until you do, the schedule is paused and only Run now works.
Pause and resume#
- Pause schedule stops future runs. A run already in progress finishes normally.
- Enable schedule turns it back on. Runs that were missed while it was paused are not caught up; the next run is simply the next scheduled time.
- If your plan passes its paid-until date and is suspended, schedules stop too, and start again when you renew.
Check runs on the Cron jobs page#
Open Cron jobs (group Software). You see:
- Schedules: each job, its schedule (or Manual only), whether it is enabled or paused, and its last run. Run and Pause / Enable buttons work here too.
- Recent runs: when each run was requested, started and finished, and its result with the exit code.
finishedwith exit 0 is a success;failedmeans the code exited with an error, crashed, or was stopped.
Rules worth knowing#
- One run at a time. If a run is still going when the next one is due, or you press Run now while it runs, the panel says "This job is already queued or running". Make sure an every-5-minutes job finishes in well under 5 minutes.
- One hour at most. A job that runs longer than 1 hour is stopped and the run counts as failed. Split long work into smaller runs, or use a worker.
- Stuck runs are closed. A run still marked as running after about 75 minutes is marked failed so the job can run again.
Troubleshooting tips#
- The job did not run at the time: check that the card says the schedule is enabled (the button reads Pause schedule) and that the time is in IST, not your local time.
- Runs overlap or get skipped: the job takes longer than its interval. Make it faster or choose a longer interval.
- Every run fails after a code change: open Logs on the app's card; see Fix a failing Python app.
What's next#
Was this helpful?
Still stuck?
Email support@finitehost.com with your subscription ID (it starts with t, shown on the panel's Dashboard) and what you tried. A person replies, usually within one business day.
Last updated 27 October 2026. Found something wrong? Tell support@finitehost.com.