[wp-hackers] WP cron and "multi-threading"
ringmaster at midnightcircus.com
Sun Oct 8 13:59:03 GMT 2006
I've used wp_schedule_event() to register a cron event during the
activation of my plugin, and I have a couple of issues.
#1: The cron event seems to leave remnants of non-existent args in the
serialized options array. Every time it runs it adds an array wrapper
to the existing zero-length array of arguments. I don't know if this
patch (http://trac.wordpress.org/ticket/3169) will fix it. I'm not sure
if it's causing any issues with the plugin itself since I'm not using
the parameters, but I don't think it will be a problem, at least until
the size of the data exceeds the field length.
#2: I need the cron to run *exactly once* at each interval. Assuming
that traffic on the site is buzzing along, the current cron
implementation could allow events to be processed more than once,
depending on how long it takes for the hooked function to run. In my
case, the computation in the cron hook usually takes 2 seconds or more,
leaving plenty of room for another incoming hit to trigger the same event.
I've implemented a flock() check in my own code, something I'd rather
not do. It might be beneficial to rearrange the cron code so that it
unschedules the event before it executes it.
Any other clever suggestions as to how to keep the cron from executing
more than once on a single registered instance would be helpful.
Is anybody else using this functionality in their plugins?
More information about the wp-hackers