[wp-hackers] WP cron and "multi-threading"
Peter Westwood
peter.westwood at ftwr.co.uk
Mon Oct 9 17:24:01 GMT 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Mark Jaquith wrote:
> On Oct 9, 2006, at 12:14 AM, Robert Deaton wrote:
>
>>> Mark Jaquith wrote:
>>> > You need to expire the "cron_is_running" option, in case your winning
>>> > race candidate dies before it gets to unset it.
>>
>> No, if it loses the race condition, something else has overwritten it.
>> The other thread that won the race condition will clean it up when its
>> finished.
>
> It'll clean up *IF* it finishes. What if one of the cron'd actions
> causes a fatal error? Then you're stuck with "cron_is_running" set to a
> key that'll never be matched again.
>
> Pretend that Tom Hanks is a process. He claims Helen Hunt by marrying
> her. Then, his FedEx plane crashes and he's stranded on a tropical
> island with only an inflatable ball as a companion. Helen Hunt is
> stuck, because she can't confirm that Hanks has died or otherwise
> *explicitly* relinquished his claim on her as his spouse. Should she
> wait forever? Nah. She waits a few years and Hanks is declared legally
> dead, and she remarries.
>
> Sort of like that. :-)
>
How about this.
Kind of like the approach I take in my sk2-digest-plugin to stop getting
multiple digest emails with concurrent spam attempts.
1. Cron event is detected to be run
2. Reschedule event for now+10mins
3. Run event
4. Unschedule the now+10mins event
i.e some way of marking an event as in progress but ensuring that if
something die()'s we give the event another chance.
westi
- --
Peter Westwood
http://blog.ftwr.co.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFKoWxVPRdzag0AcURAts+AKCpyMgX9VHDTee3Ui7ykXI2b68OFQCgm9bJ
N2j4ltLrp0VYFJ88OrfO71g=
=CEYJ
-----END PGP SIGNATURE-----
More information about the wp-hackers
mailing list