[wp-trac] [WordPress Trac] #44818: cron: preventing duplicate events fails when the first event is too far in the past
WordPress Trac
noreply at wordpress.org
Mon Aug 20 14:19:12 UTC 2018
#44818: cron: preventing duplicate events fails when the first event is too far in
the past
-----------------------------+-----------------------------
Reporter: bodohugobarwich | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Cron API | Version: 4.9.8
Severity: normal | Keywords:
Focuses: |
-----------------------------+-----------------------------
the patch submitted in \\
[https://core.trac.wordpress.org/changeset/29939]\\
[https://core.trac.wordpress.org/ticket/6966]\\
fails when the timestamp of the first event is too far in the past,
perhaps because the cron was not executed.
in src/wp-includes/cron.php :
{{{
if ( $next && abs( $next - $timestamp ) <= 10 * MINUTE_IN_SECONDS ) {
return;
}
}}}
The same Event that has been scheduled in 2016 and was not processed since
then
permits that any amount of those Events can be added in 1 second interval.
That way the database field "cron" in "wp_options" fills up with "do_ping"
Events in 1 second interval until no further event can't be added due to
MySQL packet_size restrictions.
{{{
$ date --date="1970-01-01 + 1464704077 sec" +"%F %T"
2016-05-31 15:14:37
$ php -r "echo abs( 1464704077 - time()) . \"\\n\";"
69813398
$ php -r "echo abs( 1464704077 - time()) . \" < \". (10*600) . \"\\n\";"
69813460 < 6000
$ php -r "echo (1464704077 - time()) . \" < \". (10*600) . \"\\n\";"
-69813728 < 6000
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/44818>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list