Not every piece of code needs to run 24/7.
Sometimes you need an application that continuously listens for requests.
Sometimes you only need a task to run every hour.
Those are very different workloads.
A Web Service Is Always Waiting
A typical API might look like:
Request ↓ Application ↓ Response
It needs to stay available because users can send requests at any time.
A Scheduled Job Is Different
Consider:
“Delete expired sessions every night.”
There is no reason to keep a dedicated process running all day just to perform one small task at midnight.
A scheduled job can run when needed.
Common Scheduled Tasks
Examples include:
Generating reports Cleaning temporary files Sending reminder emails Updating analytics Syncing external data Removing expired records Separate the Responsibilities
A clean architecture might look like:
Web App │ ├── API │ └── User requests
Scheduled Job │ └── Nightly cleanup
This makes the purpose of each workload clearer.
Don't Turn Everything Into a Cron Job
The opposite mistake is also possible.
If a task needs to react immediately to events, a queue worker may be more appropriate than a scheduled task.
Think about when the work needs to happen.
Continuous work → worker/service
Periodic work → scheduled job
Infrastructure Should Match the Workload
Hostwares supports separate deployments for different workloads, so an application and its background processes don't have to be treated as the same service.
The important part is understanding what your application actually needs to run continuously.
Don't keep a server busy waiting for work that only happens once an hour.