Job 1 is scheduled to run every 5 minutes, and takes ~1 minute to complete.
A lot of work piles up and Job 1 takes 15 minutes to run.
There are now three Job 1's being processed concurrently - I don't want this.
Is there Hangfire setting, or do I need to poll job statuses manually?
You can use DisableConcurrentExecution attribute to prevent multiple executions of a method concurrently. Just put this attribute above your method -
[DisableConcurrentExecution(timeoutInSeconds: 10 * 60)]
public void Job1()
{
// Metohd body
}