Changeset 3461166
- Timestamp:
- 02/14/2026 03:16:00 AM (6 weeks ago)
- Location:
- dynamic-front-end-heartbeat-control/tags/1.2.998.1
- Files:
-
- 2 edited
-
heartbeat-controller.php (modified) (4 diffs)
-
widget.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dynamic-front-end-heartbeat-control/tags/1.2.998.1/heartbeat-controller.php
r3461136 r3461166 85 85 }); 86 86 87 function dfehc_get_recommended_interval_for_load(float $load, float $response_time = 0.0): float 88 { 89 $last_key = dfehc_scoped_tkey('dfehc_last_user_activity'); 90 $last_activity = (int) get_transient($last_key); 91 $elapsed = $last_activity > 0 ? max(0.0, (float) (time() - $last_activity)) : 0.0; 92 93 return (float) dfehc_calculate_recommended_interval($elapsed, $load, $response_time); 94 } 95 87 96 function dfehc_enqueue_scripts(): void 88 97 { … … 93 102 wp_enqueue_script('heartbeat'); 94 103 95 $site_key = function_exists('dfehc_scoped_key') ? (string) dfehc_scoped_key('site') : (string) wp_parse_url(home_url(), PHP_URL_HOST); 104 $site_key = function_exists('dfehc_scoped_key') 105 ? (string) dfehc_scoped_key('site') 106 : (string) wp_parse_url(home_url(), PHP_URL_HOST); 96 107 $site_key = $site_key ?: (string) wp_parse_url(home_url(), PHP_URL_HOST); 97 108 $site_key = $site_key ?: 'site'; 98 109 99 110 $ver = defined('DFEHC_VERSION') ? (string) DFEHC_VERSION : (string) filemtime(__FILE__); 100 $cache_duration_ms = (int) apply_filters('dfehc_js_cache_duration_ms', 10 * 60 * 1000); 111 112 $cache_duration_ms = (int) apply_filters('dfehc_js_cache_duration_ms', 10 * 60 * 1000); 101 113 $cache_duration_ms = max(15000, min(60 * 60 * 1000, $cache_duration_ms)); 102 114 … … 108 120 $leader_ttl_ms = max(2000, min(20000, $leader_ttl_ms)); 109 121 $leader_beat_ms = max(800, min(10000, $leader_beat_ms)); 122 110 123 $load = function_exists('dfehc_get_server_load') ? dfehc_get_server_load() : null; 111 124 if ($load === false || $load === null) { 112 $load = (float) DFEHC_MAX_SERVER_LOAD;125 $load = (float) DFEHC_MAX_SERVER_LOAD; 113 126 } 114 127 $load = (float) $load; 115 128 116 $recommended = function_exists('dfehc_calculate_recommended_interval_user_activity') 117 ? dfehc_calculate_recommended_interval_user_activity($load, DFEHC_BATCH_SIZE) 118 : 60.0; 129 $rt_seconds = 0.0; 130 if (function_exists('dfehc_get_server_response_time')) { 131 $rt = dfehc_get_server_response_time(); 132 133 if (is_numeric($rt)) { 134 $rt_seconds = (float) $rt; 135 } elseif (is_array($rt)) { 136 if (isset($rt['main_response_ms']) && is_numeric($rt['main_response_ms'])) { 137 $rt_seconds = ((float) $rt['main_response_ms']) / 1000.0; 138 } elseif (isset($rt['response_ms']) && is_numeric($rt['response_ms'])) { 139 $rt_seconds = ((float) $rt['response_ms']) / 1000.0; 140 } elseif (isset($rt['response_time']) && is_numeric($rt['response_time'])) { 141 $rt_seconds = (float) $rt['response_time']; 142 } 143 } elseif (is_object($rt)) { 144 $arr = (array) $rt; 145 if (isset($arr['main_response_ms']) && is_numeric($arr['main_response_ms'])) { 146 $rt_seconds = ((float) $arr['main_response_ms']) / 1000.0; 147 } elseif (isset($arr['response_ms']) && is_numeric($arr['response_ms'])) { 148 $rt_seconds = ((float) $arr['response_ms']) / 1000.0; 149 } elseif (isset($arr['response_time']) && is_numeric($arr['response_time'])) { 150 $rt_seconds = (float) $arr['response_time']; 151 } 152 } 153 154 $rt_seconds = max(0.0, $rt_seconds); 155 } 156 157 $recommended = 60.0; 158 159 if (function_exists('dfehc_get_recommended_interval_for_load')) { 160 $recommended = (float) dfehc_get_recommended_interval_for_load($load, (float) $rt_seconds); 161 } elseif (function_exists('dfehc_calculate_recommended_interval')) { 162 $last_key = function_exists('dfehc_scoped_key') ? dfehc_scoped_key('dfehc_last_user_activity') : 'dfehc_last_user_activity'; 163 $last = function_exists('get_transient') ? (int) get_transient($last_key) : 0; 164 $elapsed = $last > 0 ? max(0.0, (float) (time() - $last)) : 0.0; 165 166 $recommended = (float) dfehc_calculate_recommended_interval($elapsed, $load, (float) $rt_seconds); 167 } elseif (function_exists('dfehc_calculate_recommended_interval_user_activity')) { 168 $recommended = (float) dfehc_calculate_recommended_interval_user_activity($load, DFEHC_BATCH_SIZE); 169 } 170 119 171 wp_localize_script( 120 172 'heartbeat', … … 125 177 'nonce' => wp_create_nonce(DFEHC_NONCE_ACTION), 126 178 'ver' => $ver, 127 'cache_bypass_rate' => 0.05,179 'cache_bypass_rate' => (float) $cache_bypass_rate, 128 180 ) 129 181 ); -
dynamic-front-end-heartbeat-control/tags/1.2.998.1/widget.php
r3461136 r3461166 71 71 } 72 72 73 $recommended_interval = dfehc_calculate_recommended_interval_user_activity($server_load);73 $recommended_interval = dfehc_get_recommended_interval_for_load((float) $server_load); 74 74 75 75 $load_logs = get_option('dfehc_server_load_logs', []); … … 667 667 $server_load = dfehc_get_server_load(); 668 668 $server_response_time = dfehc_get_server_response_time(); 669 $recommended_interval = dfehc_calculate_recommended_interval_user_activity($server_load);669 $recommended_interval = dfehc_get_recommended_interval_for_load((float) $server_load, (float) $response_seconds); 670 670 671 671 $response_seconds = 0.0;
Note: See TracChangeset
for help on using the changeset viewer.