When having periodical jobs with big differences in runtime and you want to prevent the jobs to run multiple times in parallel, SAP has a report called RSBTONEJOB2.
You just have to create a variant for this report:
REPORT is the report you want to run as job step, VARIANT the variant you have to create beforehand.
Now you have to save this variant with the same name as the variant of the report:
Now create the job in SM36:
The job name has to be the JOBNAME you entered before. As step, you just have to add RSBTONEJOB2 with the created variant:
When this job runs, it first checks if there is another job with the same name – if not, the entered REPORT is executed with the selected VARIANT.