I'm writing an email newsletter module which adds quite lengthy tasks to the cron run (send emails, collect and process bounced back email, delete messages from inbox). This got me thinking that there is a danger of the cron run timing out if we give it too much to do - not just with my module.

Is there a solution for this already?

I'm wondering if different cron runs can be set to run different tasks.

For instance, set up 3 separate cron to run every hour, each one calls the cron.php page including a number variable which runs a certain set of tasks.

An Admin control panel would list all cron tasks and allow administrators to split them into separate cron runs based on the number variable passed to the script when calling cron.php.

Does this sound feasible?

Is there a simpler solution?