Job scheduling has to do with allocating system resources to many different tasks by an operating system. The system handles prioritized job queues that are awaiting CPU time and determines which job will be taken from which queue, and the amount of time to be allocated for the job.
Wikipedia describes cron as a command-line utility/service that is used for the time-based scheduling of programs. It is present in Unix-like operating systems including ubuntu, etc and it is a daemon - a background process executing non-interactive jobs.
For tasks like automating system maintenance (e.g taking backups) and administrative tasks, Cron will be the most suitable tool to use.
However, cron has the following limitations:
It is centralized on one computer, hence, cron jobs can’t be distributed to multiple computers on a network.
No auto-retry mechanism when a task fails.
The shortest interval between jobs is 60 seconds, which makes it impossible to repeat a job every 59 seconds or less.
Cron provides an excellent way to manage repetitive tasks for people working in Linux environments.