I used both options and came to the conclusion that it is better to control the control than cron.
You can connect it so that your control is through django admin instead of sshing in and changing crontab. In addition, there is implicit portability when using a runout - this means that you can move it from machine to machine using the configuration instead of logging in.
Of course, there are drawbacks, but they are few. We used pid files to control the singleton aspect of the job, but now we use a common database semaphore table (other people used memcache, but I just donβt feel comfortable with that).
source share