There is another simpler solution. The job can be given an annotation of DisallowConcurrentExecution which prevents multiple concurrent instances running. See docs here.
The link keeps breaking so here is the relevant sample.
@DisallowConcurrentExecution
public class ColorJob implements Job {