]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10038: [core] tune heartbeat events interval
authorRazvan Crainea <razvan@opensips.org>
Tue, 14 Feb 2017 11:41:52 +0000 (13:41 +0200)
committerRazvan Crainea <razvan@opensips.org>
Tue, 14 Feb 2017 11:43:13 +0000 (13:43 +0200)
conf/vanilla/autoload_configs/switch.conf.xml
src/include/private/switch_core_pvt.h
src/switch_core.c

index 345a16c19e37749a4bb72e935e4ae6cff86c4b0f..ababe548ac447f99245079c7fc929b31a0d86699 100644 (file)
@@ -48,6 +48,9 @@
     <!-- Minimum idle CPU before refusing calls -->
     <!-- <param name="min-idle-cpu" value="25"/> -->
 
+    <!-- Interval between heartbeat events -->
+    <!-- <param name="event-heartbeat-interval" value="20"/> -->
+
     <!--
        Max number of sessions to allow at any given time.
        
index 83f93390bbacac2ad0e05f3091a86f751e717f7a..2807d927e5e94488648f10745a89ff1a8fafad69 100644 (file)
@@ -302,6 +302,7 @@ struct switch_runtime {
        int multiple_registrations;
        uint32_t max_db_handles;
        uint32_t db_handle_timeout;
+       uint32_t event_heartbeat_interval;
        int cpu_count;
        uint32_t time_sync;
        char *core_db_pre_trans_execute;
index 185a2f11a526f6db4c70f031bf00ea3af5768978..0b8c51f1f736eaa8acf9f5e77822b35daf1a8c52 100644 (file)
@@ -206,7 +206,7 @@ SWITCH_STANDARD_SCHED_FUNC(heartbeat_callback)
        send_heartbeat();
 
        /* reschedule this task */
-       task->runtime = switch_epoch_time_now(NULL) + 20;
+       task->runtime = switch_epoch_time_now(NULL) + runtime.event_heartbeat_interval;
 }
 
 
@@ -1826,6 +1826,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
 
        runtime.max_db_handles = 50;
        runtime.db_handle_timeout = 5000000;
+       runtime.event_heartbeat_interval = 20;
 
        runtime.runlevel++;
        runtime.dummy_cng_frame.data = runtime.dummy_data;
@@ -2140,6 +2141,15 @@ static void switch_load_core_config(const char *file)
                                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "db-handle-timeout must be between 1 and 5000\n");
                                        }
 
+                               } else if (!strcasecmp(var, "event-heartbeat-interval")) {
+                                       long tmp = atol(val);
+
+                                       if (tmp > 0) {
+                                               runtime.event_heartbeat_interval = (uint32_t) tmp;
+                                       } else {
+                                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "heartbeat-interval must be a greater than 0\n");
+                                       }
+
                                } else if (!strcasecmp(var, "multiple-registrations")) {
                                        runtime.multiple_registrations = switch_true(val);
                                } else if (!strcasecmp(var, "auto-create-schemas")) {