如何编写API调用自动重试代码

时间:2021-05-18 作者:AncientRo

在我的网站上,我有一个可以由用户填写的表格。提交后,我将使用RESTful API将表单数据存储在第三方服务中。

function gravity_forms_1_after_submission( $entry, $form ) {
    if ( rgar( $entry, \'status\' ) === \'spam\' ) {
        return;
    }

    $response = wp_remote_post(
        esc_url_raw( \'...\' ),
        array(
            \'headers\' => array(
                ...
            ),
            \'body\' => json_encode( array(
                ...
            ) )
        )
    );

    if ( is_wp_error( $response ) ) {
        ...
    } else {
        ...
    }
}

add_action( \'gform_after_submission_1\', \'gravity_forms_1_after_submission\', 10, 2 );
对于API关闭或过程中出现问题,因此不会丢失任何数据的情况,我想编写一个自动重试功能-如果第一个API调用失败,稍后将进行后续尝试,直到成功发送数据。(我所说的后续尝试并不是指之后立即进行,因为API可能会关闭,但可能会在5分钟后、30分钟后、2小时后,直到调用成功。)

我该如何在WordPress中进行编码?

1 个回复
最合适的回答,由SO网友:Edward 整理而成

首先,您应该将数据保存在wordpress中的某个位置。我个人喜欢使用自定义表。然后使用计划(cron作业)检查是否有新数据。然后尝试提交数据。如果成功提交数据,请将其删除或将本地数据标记为已成功提交。否则,请在下次计划运行时重试。如果要增加每次尝试的等待时间,可以将重试次数保存在本地数据集上。

相关推荐

如何使用WooCommerce在React.js主题中呈现WP REST-API端点

我正在使用React构建一个电子商务Wordpress/Woocommerce主题。js。我正在使用npm软件包:create-react-wptheme此包直接在索引内部呈现react应用程序。wordpress主题的php。我不确定如何访问react中的wordpress api端点。js组件。我已经使用jsx为站点创建了模板,需要访问api端点来呈现动态内容。我可以使用对外部api的http请求访问这些点,但我需要能够访问react wp主题内的完整api。据我所知,我需要使用主干。js api客户