我有一些CPU密集型脚本,我不想同时运行。脚本有时会重叠并使服务器崩溃。已经达到2GB,mysql容器仍然崩溃。
我有一个crontab设置来点击示例。com/cron。php?do\\u cron=randstr,每15分钟一次。
有没有办法放置一个锁,一次只执行一个cron任务?完成后,下一个将运行。
我知道这可以使用PHP的文件锁定机制来完成(但它不会将下一个任务排队)。不确定WP是否自行完成此操作。
All help appreciated!
我有一些CPU密集型脚本,我不想同时运行。脚本有时会重叠并使服务器崩溃。已经达到2GB,mysql容器仍然崩溃。
我有一个crontab设置来点击示例。com/cron。php?do\\u cron=randstr,每15分钟一次。
有没有办法放置一个锁,一次只执行一个cron任务?完成后,下一个将运行。
我知道这可以使用PHP的文件锁定机制来完成(但它不会将下一个任务排队)。不确定WP是否自行完成此操作。
All help appreciated!
Simple Cronjob Walker
<创建CPTcronjob
为了你的cronjobsfunction my_cronjob_walker() {
$args= array(
\'post_type\' => \'cronjob\',
\'posts_per_page\' => 1,
\'meta_key\' => \'last_executed\'
\'orderby\' => \'meta_value\',
);
$cronjob = new WP_Query($args);
if ($cronjob->have_posts()) while ($cronjob->have_posts()) {
$cronjob->the_post();
// do your cronjob stuff here
do_action(get_post_meta(get_the_ID(), \'action\', true);
update_post_meta(get_the_ID(), \'last_executed\', date(\'c\'));
}
}
if ( ! wp_next_scheduled( \'do_cronjob_walker\' ) ) {
wp_schedule_event( time(), \'hourly\', \'do_cronjob_walker\' );
}
add_action( \'do_cronjob_walker\', \'my_cronjob_walker\' );
在我的wp-config.php, 我有define(\'DISABLE_WP_CRON\', true); 我在Mac(Catalina)上,如果我从终端运行crontab - l 我明白了* * * * * wget -q -O - \'https://mysiite.com/wp-cron.php?doing_wp_cron&cron=true\'; echo "wordpresscron" >> /somepath/stdout.log