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/