aboutsummaryrefslogtreecommitdiff
path: root/lib/VNLib.Plugins.Extensions.Loading/src/Events
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.Loading/src/Events')
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/Events/AsyncIntervalAttribute.cs44
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading/src/Events/EventManagment.cs4
2 files changed, 41 insertions, 7 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/Events/AsyncIntervalAttribute.cs b/lib/VNLib.Plugins.Extensions.Loading/src/Events/AsyncIntervalAttribute.cs
index e8f071e..139a3ac 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/Events/AsyncIntervalAttribute.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/Events/AsyncIntervalAttribute.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Loading
@@ -36,12 +36,46 @@ namespace VNLib.Plugins.Extensions.Loading.Events
internal readonly TimeSpan Interval;
/// <summary>
- /// Intializes the <see cref="AsyncIntervalAttribute"/> with the specified timeout in milliseconds
+ /// Initializes a new <see cref="AsyncIntervalAttribute"/> with allowing
+ /// a configurable
/// </summary>
- /// <param name="milliseconds">The interval in milliseconds</param>
- public AsyncIntervalAttribute(int milliseconds)
+ public AsyncIntervalAttribute()
+ {}
+
+ /// <summary>
+ /// Gets or sets the interval in seconds. Choose only ONE internval resolution
+ /// </summary>
+ public int Seconds
+ {
+ get => (int)Interval.TotalSeconds;
+ init => Interval = TimeSpan.FromSeconds(value);
+ }
+
+ /// <summary>
+ /// Gets or sets the interval in milliseconds. Choose only ONE internval resolution
+ /// </summary>
+ public int MilliSeconds
+ {
+ get => (int)Interval.TotalMilliseconds;
+ init => Interval = TimeSpan.FromMilliseconds(value);
+ }
+
+ /// <summary>
+ /// Gets or sets the interval in minutes. Choose only ONE internval resolution
+ /// </summary>
+ public int Minutes
+ {
+ get => (int)Interval.TotalMinutes;
+ init => Interval = TimeSpan.FromMinutes(value);
+ }
+
+ /// <summary>
+ /// Gets or sets the interval in hours. Choose only ONE internval resolution
+ /// </summary>
+ public int Hours
{
- Interval = TimeSpan.FromMilliseconds(milliseconds);
+ get => (int)Interval.TotalMinutes;
+ init => Interval = TimeSpan.FromHours(value);
}
}
}
diff --git a/lib/VNLib.Plugins.Extensions.Loading/src/Events/EventManagment.cs b/lib/VNLib.Plugins.Extensions.Loading/src/Events/EventManagment.cs
index bde6986..57e4a9c 100644
--- a/lib/VNLib.Plugins.Extensions.Loading/src/Events/EventManagment.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading/src/Events/EventManagment.cs
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2022 Vaughn Nugent
+* Copyright (c) 2023 Vaughn Nugent
*
* Library: VNLib
* Package: VNLib.Plugins.Extensions.Loading
@@ -60,7 +60,7 @@ namespace VNLib.Plugins.Extensions.Loading.Events
plugin.Log.Verbose("Interval for {t} scheduled", interval);
//Run interval on plugins bg scheduler
- _ = plugin.ObserveTask(() => RunIntervalOnPluginScheduler(plugin, asyncCallback, interval, immediate));
+ _ = plugin.ObserveWork(() => RunIntervalOnPluginScheduler(plugin, asyncCallback, interval, immediate));
}
private static async Task RunIntervalOnPluginScheduler(PluginBase plugin, AsyncSchedulableCallback callback, TimeSpan interval, bool immediate)