voceconnect/no-stampede-actions

WordPress api,用于启动全局单例动作。它会锁定动作,以防止其他请求启动相同的动作。

v1.0.0 2013-12-05 14:47 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:33 UTC


README

请注意:此插件不再进行积极维护或支持。

无冲撞动作

贡献者:prettyboymp, kevinlangleyjr, csloisel
标签:性能,缓存
至少需要:3.0
测试到:3.7.1
稳定标签:1.0
许可证:GPLv2 或更新版
许可证 URI:https://gnu.ac.cn/licenses/gpl-2.0.html

描述

WordPress api,用于启动全局单例动作。它会锁定动作,以防止其他请求启动相同的动作

安装

作为主题或插件的依赖项

将插件拖放到包含的主题或插件中后,添加以下内容

<?php
	if( ! class_exists( 'NSA_Action' ) ) {
		require_once( $path_to_nsa_actions . '/no-stampede-actions.php' );
	}

用法

<?php
function long_request(){
	$val = wp_cache_get( 'long_request_key' );
	if( $val === false ){
		nsa_action('long_request')
			->action_callback( 'long_request_callback', array( 'http://example.com/long-running-request.php' ) )
			->background_only( false )
			->max_tries( 10 )
			->do_action( );

		$val = wp_cache_get( 'long_request_key' );
	}
	return $val;
}

function long_request_callback($url){
	$content = wp_remote_retrieve_body( wp_remote_get( $url, array( 'timeout' => 30 ) ) );
	wp_cache_set( 'long_request_key', $content );
	return $content;
}