Automatic retry when job is not completed yet?

Have you looked into using the DisableConcurrentExecution attribute?