Running CRON jobs is not an easy task if you want to do it perfectly: fortunately we’re doing it similarly as it’s recommended by the Percona guys:
- prevent running multiple copies using file locks
- watch for errors
- store historical run times (use logging)
Further details and code sample in Watch out for your CRON jobs at MySQL Performance Blog.