www.91084.com

GVKun编程网logo

php – WordPress Cron API在后台运行吗?(wp-cron.php)

2

在这篇文章中,我们将带领您了解php–WordPressCronAPI在后台运行吗?的全貌,包括wp-cron.php的相关情况。同时,我们还将为您介绍有关$wpdb->update($table_n

在这篇文章中,我们将带领您了解php – WordPress Cron API在后台运行吗?的全貌,包括wp-cron.php的相关情况。同时,我们还将为您介绍有关$wpdb->update($table_name... 自 Wordpress 5.6 起在 cron 中不起作用、/etc/cron.daily/apt和/etc/cron.daily/aptitude对ubuntu的耐心、cpanel cron 作业和 wordpress、Cron Job Spring,我需要从数据库中验证表上的一行,然后使用 Cron 作业进行修改的知识,以帮助您更好地理解这个主题。

本文目录一览:

php – WordPress Cron API在后台运行吗?(wp-cron.php)

php – WordPress Cron API在后台运行吗?(wp-cron.php)

我正在读取wp-includes中的cron.PHP代码,而spawn_cron()似乎是实际执行已注册任务的代码.

函数的最后两行:

$cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron );

wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) );

它只是打开wp-cron.php,将任务作为查询参数传递.

cron.PHP顶部的API描述:

* Schedules a hook which will be executed once by the wordpress actions core at 
* a time which you specify. The action will fire off when someone visits your
* wordpress site, if the schedule time has passed.`

我的问题是,让我们说访问者打开网站的一个页面,然后注册的任务由cron API触发.如果任务很繁重并需要几分钟才能完成,那么在任务完成之前,访问者是否会获得一个未完全加载的页面?

[编辑]
为了澄清我的问题,问题是,WP Cron API在页面加载完成后是否运行任务?

解决方法:

$cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron );
wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) );

使用下面的示例插件,我确认上面的代码(我在问题中引用)是实际调用计划任务的代码.它设置0.0.1超时并访问wp-cron.php.这意味着如果有100个任务,则加载所有任务需要1秒钟.因此它对页面加载速度有轻微影响.但它似乎不必担心太多.

<?PHP
/* Plugin Name: Sample Cron Task */ 

    // I used `heavy` because this code was initially written to test how it affects the server response if a heavy task is registered as a cron job. So forget about the naming.
add_action('admin_menu', 'sample_cron_heavy_task');
function sample_cron_heavy_task() {
    add_options_page(
        'Sample Cron Heavy Task', 
        'Sample Cron Heavy Task', 
        'manage_options',
        'sample_cron_heavy_task', 
        'sample_cron_heavy_task_admin');
}
function sample_cron_heavy_task_admin() {
    ?>
    <div>
    <?PHP
        wp_schedule_single_event(time(), 'my_action_name');
        $cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron );
        // executes the registered task immediately 
        wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) );
        echo get_option('sample_cron_heavy_task');
    ?>
    </div>
    <?PHP
}

add_action('my_action_name', 'myevent'); 
function myevent() {
    $msg = date('Y m d h:i:s A') . ': the cron task is called.<br />';
    update_option('sample_cron_heavy_task', $msg);
}

$wpdb->update($table_name... 自 Wordpress 5.6 起在 cron 中不起作用

$wpdb->update($table_name... 自 Wordpress 5.6 起在 cron 中不起作用

如何解决$wpdb->update($table_name... 自 Wordpress 5.6 起在 cron 中不起作用

我在数据库中有自己的表,并通过在 cron 中读取和写入数据库的 XML 文件更新它们;它运行良好,直到 5.6;现在它不会更新数据库,也没有错误消息...

在 cron 中:

$wpdb->update($table_name,array(
                                ''ID'' => $agenda->ID,....
                            ),array( ''ID'' => $agenda->ID),//Where
                            array( 
                                ''%d'',...''
                            ),array(''%d'') 
                                
                        );

/etc/cron.daily/apt和/etc/cron.daily/aptitude对ubuntu的耐心

/etc/cron.daily/apt和/etc/cron.daily/aptitude对ubuntu的耐心

我是一个系统管理员newb,否则我会自己解决这个问题.我有一个slicehost切片,我注意到有一些脚本可以运行(我在问题标题中提到的那些)看起来像是在进行系统更新.我想知道在没有监督的情况下自动运行是不是一个好主意.服务器运行一个电子商务网站,任何破坏服务器的升级都是不幸的.请告知最佳做法?我应该把它们保存在某个地方而不是让cron每天无人监管吗?他们究竟在做什么?谢谢!
简短的回答:/etc/cron.daily/apt和/etc/cron.daily/aptitude都可以安全地保持启用状态,并且不会导致任何意外的升级.

答案很长:

/etc/cron.daily/aptitude在默认的Hardy安装上只维护/ var / backup中包状态文件的备份,作为名为aptitude.pkgstates.0到aptitude.pkgstates.6的文件(文件1-6被gzip压缩) .

/etc/cron.daily/apt更复杂,并且可以根据您的apt配置设置执行各种操作,这些设置在/etc/apt/apt.conf中维护,以及/ etc / apt / apt下的各种包含文件.conf.d /

如果您想知道每日apt脚本是否正在执行无人值守升级,请检查此apt-config命令的输出.以下是默认值,表示未执行无人值守升级:

$apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade
UnattendedUpgradeInterval='0'

有关“无人值守升级”过程(我不建议用于生产系统)的更多信息,请参阅/usr/share / doc / unattended-upgrades / README – 如果该文件不存在,您可能没有安装包“无人值守升级”.

/etc/cron.daily/apt上的每日apt脚本得到很好的评论,默认情况下它每天运行一次“apt-get update”.这只是使可用包文件的缓存保持最新.它不会安装或删除软件包.

您可以将其配置为下载更新的软件包文件,然后可以稍后手动安装,您可以将其配置为清理下载的软件包文件(安装后不需要).

所有这些行为都是通过/etc/apt/apt.conf.d/10periodic中存储的配置设置配置的 – 这些设置默认为:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";

我建议验证这些设置并阅读/etc/cron.daily中的脚本,但您可能目前没有任何执行无人值守和意外升级的操作.

cpanel cron 作业和 wordpress

cpanel cron 作业和 wordpress

如何解决cpanel cron 作业和 wordpress

我在一个 wordpress 网站上工作。 我想通过 cpanel cron 作业对产品进行一些更新。 为此,我在根目录下创建了一个新文件 /public_html/update-products.PHP 并在 cpanel 上添加了 cron 作业命令:

  1. /usr/local/bin/PHP /home1/blahblah/public_html/update-products.PHP

我的问题是我想在这个文件中使用 wordpress 函数,比如 get_option、update_option、update_post_Meta ...等

我应该在文件顶部包含来自 wordpress 的哪个文件。我尝试包含 index.PHP 文件本身,以便我可以使用这些函数。

这里是文件代码(update-products.PHP)

  1. require_once __DIR__ . ''/index.PHP'';
  2. require_once __DIR__ . ''/wp-content/plugins/citycenter-products/includes/api.PHP'';
  3. $last_update_info = get_option(DS_CITYCENTER_PRODUCTS_LAST_UPDATE_COMPACT_OPTION);
  4. $data = array(''type'' => ''compact'');
  5. if ($last_update_info) {
  6. $data[''from_datetime''] = $last_update_info[''date''].'' ''.$last_update_info[''time''];
  7. }
  8. $result = update_citycenter_products($data);
  9. $last_update_info = array(
  10. ''type'' => ''compact'',''date'' => date(''Y-m-d''),''time'' => date(''H:i:s''),''total'' => $result[''total''],''updated'' => $result[''updated''],''added'' => $result[''added''],);
  11. update_option(DS_CITYCENTER_PRODUCTS_LAST_UPDATE_COMPACT_OPTION,$last_update_info);

解决方法

这是因为您的文件在 WordPress 之外,所以最终是一个独立的 PHP 脚本。

查看关于 CRON 作业的 Wordpress documentation。 WordPress 有自己正确处理 CronJob 的方式。按照此方法,您将可以访问所有 WordPress 生态系统(方法和内容)。

如果您真的想在独立脚本中加载 WordPress 生态系统,则需要 wp-load.php 文件。检查this stack。

,

替换为 require_once __DIR__ . ''/wp-load.php''; 而不是 require_once __DIR__ . ''/index.php'';

Cron Job Spring,我需要从数据库中验证表上的一行,然后使用 Cron 作业进行修改

Cron Job Spring,我需要从数据库中验证表上的一行,然后使用 Cron 作业进行修改

如何解决Cron Job Spring,我需要从数据库中验证表上的一行,然后使用 Cron 作业进行修改

我尝试从 Spring 使用 @Scheduler,但看起来我的存储库是“null”,然后我尝试了 Quartz 但我认为我的方法不正确,我正在尝试咨询一个数据库,检查一个字段是否超过 90 天,如果有我需要将该字段设置为 true,所有这些都与此 Cron 作业有关。但是每次我尝试它时,Dao 存储库都会说我正在使用它的“空”,只有当我在 Cron 作业方法上调用此存储库时。

今天关于php – WordPress Cron API在后台运行吗?wp-cron.php的分享就到这里,希望大家有所收获,若想了解更多关于$wpdb->update($table_name... 自 Wordpress 5.6 起在 cron 中不起作用、/etc/cron.daily/apt和/etc/cron.daily/aptitude对ubuntu的耐心、cpanel cron 作业和 wordpress、Cron Job Spring,我需要从数据库中验证表上的一行,然后使用 Cron 作业进行修改等相关知识,可以在本站进行查询。

本文标签: