Skip to content

Commit 35f5c62

Browse files
Log execution time of tasks in /taskdebug, use actual methods instead of delegates for some tasks for more cleaner list in /taskdebug
1 parent ee20a6d commit 35f5c62

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

fCraft/Portals/PortalDB.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,9 @@ public static void Load() {
9494
}
9595
}
9696

97+
static void SaveCallback( SchedulerTask task ) { Save(); }
9798
public static void StartSaveTask() {
98-
SchedulerTask saveTask = Scheduler.NewBackgroundTask(delegate { Save(); }).RunForever(SaveInterval, SaveInterval + TimeSpan.FromSeconds(15));
99+
Scheduler.NewBackgroundTask( SaveCallback ).RunForever(SaveInterval, SaveInterval + TimeSpan.FromSeconds(15));
99100
}
100101
}
101102
}

fCraft/System/Scheduler.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ static void MainLoop() {
6969
}
7070
} else {
7171
task.IsExecuting = true;
72-
#if DEBUG_SCHEDULER
7372
task.ExecuteStart = DateTime.UtcNow;
73+
#if DEBUG_SCHEDULER
7474
FireEvent( TaskExecuting, task );
7575
#endif
7676

@@ -87,8 +87,8 @@ static void MainLoop() {
8787
}
8888
#endif
8989

90-
#if DEBUG_SCHEDULER
9190
task.ExecuteEnd = DateTime.UtcNow;
91+
#if DEBUG_SCHEDULER
9292
FireEvent( TaskExecuted, task );
9393
#endif
9494
}
@@ -289,10 +289,6 @@ public static void PrintTasks( [NotNull] Player player ) {
289289
lock( TaskListLock ) {
290290
foreach( SchedulerTask task in Tasks ) {
291291
player.Message( task.ToString() );
292-
#if DEBUG_SCHEDULER
293-
TimeSpan delta = task.ExecuteEnd - task.ExecuteStart;
294-
player.Message( " Exceution time: {0} milliseconds", delta.TotalMilliseconds);
295-
#endif
296292
}
297293
}
298294
}

fCraft/System/SchedulerTask.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ internal SchedulerTask( [NotNull] SchedulerCallback callback, bool isBackground,
7979
/// can be used for anything you want. </summary>
8080
public object UserState { get; set; }
8181

82-
#if DEBUG_SCHEDULER
8382
public DateTime ExecuteStart, ExecuteEnd;
84-
#endif
83+
84+
8585
#region Run Once
8686

8787
/// <summary> Runs the task once, as quickly as possible.
@@ -263,7 +263,11 @@ public override string ToString() {
263263
sb.Append( " -> " );
264264
sb.Append( UserState );
265265
}
266-
sb.Append( ')' );
266+
267+
sb.Append( ") - (took " );
268+
TimeSpan delta = ExecuteEnd - ExecuteStart;
269+
sb.Append( delta.TotalMilliseconds );
270+
sb.Append( " ms)" );
267271
return sb.ToString();
268272
}
269273
}

fCraft/System/Server.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ public static bool StartServer() {
420420
Scheduler.NewTask( ShowRandomAnnouncement ).RunForever( announcementInterval );
421421
}
422422
if (ConfigKey.IRCBotEnabled.Enabled() || ConfigKey.IRCBotChannels.GetString().Length >= 1 || ConfigKey.IRCBotNetwork.GetString().Length >= 1) {
423-
Scheduler.NewTask(t => IRC.SendRawMessage(IRCCommands.Ping(ConfigKey.IRCBotChannels.GetString()), "", "")).RunForever(TimeSpan.FromMinutes(15));
423+
Scheduler.NewTask( SendIrcPing ).RunForever( TimeSpan.FromMinutes( 15 ) );
424424
}
425425

426426
ChatTimer.LoadAll();
@@ -1003,7 +1003,11 @@ static void MonitorProcessorUsage( SchedulerTask task ) {
10031003
oldCPUTime = newCPUTime;
10041004
IsMonitoringCPUUsage = true;
10051005
}
1006+
10061007

1008+
static void SendIrcPing( SchedulerTask task ) {
1009+
IRC.SendRawMessage(IRCCommands.Ping(ConfigKey.IRCBotChannels.GetString()), "", "");
1010+
}
10071011
#endregion
10081012

10091013

0 commit comments

Comments
 (0)