You may want to check out the Job Queue module, as it provides the functionality you are looking for. You could either add a dependency on it (recommended) or at least read through the code to see how it works, to prevent timeouts (It has a feature to check execution time and stop processing if the time reached is half of the max execution time).

http://drupal.org/project/job_queue

-Mike
__________________
Michael Prasuhn
503.512.0822 office
[email protected]
http://mikeyp.net

On Sep 18, 2009, at 10:16 AM, nitin gupta wrote:

Hello,

I am maintaining the module feedapi imagegrabber, which pulls the images from the original url of the feed items (just like google reader). It is implemented on the top of feedapi and hence implements the feedapi_after_refresh() hook, which is basically fired by the feedapi after it has refreshed the feed.

Now, as my module download images from an external website, I can never be sure about the time it will take to complete the job of downloading images for all the feed items. Therefore, sometimes I get a 'fatal execution time exceeded error'. How can I know how much execution time is left, so that I can return on time by saving the rest of the work as a cron job?

I have gone through the source code of FeedAPI which implements hook_cron(). It uses a variable called 'cron_semaphore', which I am guessing is some way to share execution time but am unable to get how. I will really appreciate if someone can explain the above to me or provide some tutorial links on writing a good hook_cron implementation.

--
Regards,
Nitin Kumar Gupta
http://publicmind.in/blog/

Reply via email to