crons 表达式

转载 :http://www.cnblogs.com/linjiqin/archive/2013/07/08/3178452.html
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
年份(1970-2099)

其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发


有些子表达式能包含一些范围或列表

例如:子表达式(天(星期))可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT”

“*”字符代表所有可能的值

因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天
这个问题通常与 WordPress 的插件或主题有关,可能是某个插件或主题导致了计划事件的执行失败。为了解决这个问题,你可以尝试以下几个步骤: 1. 禁用所有插件:将所有的插件全部禁用,然后再重新启用它们一个一个地测试,看看哪个插件会导致计划事件执行失败。 2. 更换主题:将当前主题更换为默认主题,然后再测试一下是否仍然出现计划事件执行失败的问题。 3. 清除缓存:清除网站的缓存,然后再测试一下是否仍然出现计划事件执行失败的问题。 如果以上步骤都没有解决问题,你可以尝试手动执行计划事件。打开 wp-includes/cron.php 文件,找到以下代码: ``` if ( ! defined( 'WP_INSTALLING' ) || ! WP_INSTALLING ) { foreach ( $crons as $timestamp => $cronhooks ) { if ( $timestamp > $gmt_time ) { break; } foreach ( $cronhooks as $hook => $keys ) { foreach ( $keys as $key => $args ) { if ( ! wp_next_scheduled( $hook, $args['args'] ) ) { unset( $keys[ $key ] ); } } if ( empty( $keys ) ) { unset( $cronhooks[ $hook ] ); } } if ( empty( $cronhooks ) ) { unset( $crons[ $timestamp ] ); } } _set_cron_array( $crons ); } ``` 将上面的代码改为以下代码: ``` if ( ! defined( 'WP_INSTALLING' ) || ! WP_INSTALLING ) { foreach ( $crons as $timestamp => $cronhooks ) { if ( $timestamp > $gmt_time ) { break; } foreach ( $cronhooks as $hook => $keys ) { foreach ( $keys as $key => $args ) { if ( ! wp_next_scheduled( $hook, $args['args'] ) ) { unset( $keys[ $key ] ); } else { $schedule = wp_get_schedule( $hook, $args['args'] ); wp_reschedule_event( $timestamp, $schedule, $hook, $args['args'] ); } } if ( empty( $keys ) ) { unset( $cronhooks[ $hook ] ); } } if ( empty( $cronhooks ) ) { unset( $crons[ $timestamp ] ); } } _set_cron_array( $crons ); } ``` 然后保存文件并重新测试。如果手动执行计划事件成功,则说明问题已经解决了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值