diff --git a/src/switch_core.c b/src/switch_core.c index ab09373da4..022b101efd 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -76,7 +76,7 @@ static void heartbeat_callback(switch_scheduler_task_t *task) send_heartbeat(); /* reschedule this task */ - task->runtime += 20; + task->runtime = time(NULL) + 20; } diff --git a/src/switch_scheduler.c b/src/switch_scheduler.c index 5daa47c062..a763fc7924 100644 --- a/src/switch_scheduler.c +++ b/src/switch_scheduler.c @@ -77,6 +77,11 @@ static int task_thread_loop(int done) } else { int64_t now = time(NULL); if (now >= tp->task.runtime && !tp->in_thread) { + int32_t diff = now - tp->task.runtime; + if (diff > 1) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Task was executed late by %d seconds %u %s (%s)\n", + diff, tp->task.task_id, tp->desc, switch_str_nil(tp->task.group)); + } tp->executed = now; if (switch_test_flag(tp, SSHF_OWN_THREAD)) { switch_thread_t *thread;