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; }