[development] estimating execution time left and hook_cron
kb at 2bits.com
Fri Sep 18 20:30:32 UTC 2009
On Fri, Sep 18, 2009 at 4:03 PM, nitin gupta <nitingupta.iitg at gmail.com>wrote:
> hey, thanks for pointing this out but as I see the job queue module uses a
> timer_read('page') to see the current execution time. Who starts this timer?
> Is it set by the PHP when the execution starts? becuase if it so, then the
> work is done.
Core Drupal starts this timer for you in bootstrap.inc.
> One more thing I would like to ask from the experienced ones, I have been
> working with PHP for just a while now (say 10 months), but what I am really
> confused about is how do we get to know so many things that are of our
> interest? I mean sometimes I just end up reinventing the wheel.
> Nitin Kumar Gupta
> On Sat, Sep 19, 2009 at 1:15 AM, Michael Prasuhn <mike at mikeyp.net> wrote:
>> 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).
>> Michael Prasuhn
>> 503.512.0822 office
>> mike at mikeyp.net
>> On Sep 18, 2009, at 10:16 AM, nitin gupta wrote:
>>> 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.
>>> Nitin Kumar Gupta
Khalid M. Baheyeldin
Drupal optimization, development, customization and consulting.
Simplicity is prerequisite for reliability. -- Edsger W.Dijkstra
Simplicity is the ultimate sophistication. -- Leonardo da Vinci
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the development