diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireDynamicBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireDynamicBackgroundWorkerManager.cs index c3413096bc..d54e37c534 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireDynamicBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireDynamicBackgroundWorkerManager.cs @@ -13,13 +13,15 @@ using Volo.Abp.Hangfire; namespace Volo.Abp.BackgroundWorkers.Hangfire; [Dependency(ReplaceServices = true)] -public class HangfireDynamicBackgroundWorkerManager : IDynamicBackgroundWorkerManager, ISingletonDependency +public class HangfireDynamicBackgroundWorkerManager : + IDynamicBackgroundWorkerManager, + ISupportsRuntimeRegistration, + ISupportsCronScheduling, + ISingletonDependency { protected IServiceProvider ServiceProvider { get; } protected IDynamicBackgroundWorkerHandlerRegistry HandlerRegistry { get; } public ILogger Logger { get; set; } - public virtual DynamicBackgroundWorkerManagerCapabilities Capabilities { get; } = - new DynamicBackgroundWorkerManagerCapabilities(); public HangfireDynamicBackgroundWorkerManager( IServiceProvider serviceProvider, diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzDynamicBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzDynamicBackgroundWorkerManager.cs index f1c6736e4c..2f098d6ab4 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzDynamicBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzDynamicBackgroundWorkerManager.cs @@ -10,15 +10,17 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.BackgroundWorkers.Quartz; [Dependency(ReplaceServices = true)] -public class QuartzDynamicBackgroundWorkerManager : IDynamicBackgroundWorkerManager, ISingletonDependency +public class QuartzDynamicBackgroundWorkerManager : + IDynamicBackgroundWorkerManager, + ISupportsRuntimeRegistration, + ISupportsCronScheduling, + ISingletonDependency { public const string DynamicWorkerNameKey = "AbpDynamicWorkerName"; protected IScheduler Scheduler { get; } protected IDynamicBackgroundWorkerHandlerRegistry HandlerRegistry { get; } public ILogger Logger { get; set; } - public virtual DynamicBackgroundWorkerManagerCapabilities Capabilities { get; } = - new DynamicBackgroundWorkerManagerCapabilities(); public QuartzDynamicBackgroundWorkerManager( IScheduler scheduler, diff --git a/framework/src/Volo.Abp.BackgroundWorkers.TickerQ/Volo/Abp/BackgroundWorkers/TickerQ/TickerQDynamicBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers.TickerQ/Volo/Abp/BackgroundWorkers/TickerQ/TickerQDynamicBackgroundWorkerManager.cs index 731bd3b1da..6976f49cb5 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.TickerQ/Volo/Abp/BackgroundWorkers/TickerQ/TickerQDynamicBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.TickerQ/Volo/Abp/BackgroundWorkers/TickerQ/TickerQDynamicBackgroundWorkerManager.cs @@ -7,13 +7,6 @@ namespace Volo.Abp.BackgroundWorkers.TickerQ; [Dependency(ReplaceServices = true)] public class TickerQDynamicBackgroundWorkerManager : IDynamicBackgroundWorkerManager, ISingletonDependency { - public virtual DynamicBackgroundWorkerManagerCapabilities Capabilities { get; } = - new DynamicBackgroundWorkerManagerCapabilities - { - SupportsDynamicRegistration = false, - SupportsCronExpression = false - }; - public virtual Task AddAsync( string workerName, DynamicBackgroundWorkerSchedule schedule, diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DefaultDynamicBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DefaultDynamicBackgroundWorkerManager.cs index 2fc674a06a..6fdbb202d0 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DefaultDynamicBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DefaultDynamicBackgroundWorkerManager.cs @@ -10,16 +10,13 @@ using Volo.Abp.Threading; namespace Volo.Abp.BackgroundWorkers; -public class DefaultDynamicBackgroundWorkerManager : IDynamicBackgroundWorkerManager, ISingletonDependency +public class DefaultDynamicBackgroundWorkerManager : + IDynamicBackgroundWorkerManager, + ISupportsRuntimeRegistration, + ISingletonDependency { protected IServiceProvider ServiceProvider { get; } public ILogger Logger { get; set; } - public virtual DynamicBackgroundWorkerManagerCapabilities Capabilities { get; } = - new DynamicBackgroundWorkerManagerCapabilities - { - SupportsDynamicRegistration = true, - SupportsCronExpression = false - }; private readonly ConcurrentDictionary _dynamicWorkers; private readonly SemaphoreSlim _semaphore; diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManagerCapabilities.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManagerCapabilities.cs deleted file mode 100644 index ae8275e499..0000000000 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManagerCapabilities.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Volo.Abp.BackgroundWorkers; - -public class DynamicBackgroundWorkerManagerCapabilities -{ - public bool SupportsDynamicRegistration { get; set; } = true; - - public bool SupportsCronExpression { get; set; } = true; -} diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/IDynamicBackgroundWorkerManager.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/IDynamicBackgroundWorkerManager.cs index 3499bab63a..7e625e7c9c 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/IDynamicBackgroundWorkerManager.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/IDynamicBackgroundWorkerManager.cs @@ -9,11 +9,6 @@ namespace Volo.Abp.BackgroundWorkers; /// public interface IDynamicBackgroundWorkerManager { - /// - /// Describes the scheduling and runtime-registration capabilities of the active dynamic worker provider. - /// - DynamicBackgroundWorkerManagerCapabilities Capabilities { get; } - /// /// Adds a dynamic worker by name, schedule and handler. /// If a worker with the same name already exists, it will be replaced. diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/ISupportsCronScheduling.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/ISupportsCronScheduling.cs new file mode 100644 index 0000000000..9160ef368a --- /dev/null +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/ISupportsCronScheduling.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.BackgroundWorkers; + +/// +/// Marks a dynamic background worker manager that supports cron-based scheduling. +/// +public interface ISupportsCronScheduling +{ +} diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/ISupportsRuntimeRegistration.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/ISupportsRuntimeRegistration.cs new file mode 100644 index 0000000000..4f343113bf --- /dev/null +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/ISupportsRuntimeRegistration.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.BackgroundWorkers; + +/// +/// Marks a dynamic background worker manager that supports registering workers at runtime. +/// +public interface ISupportsRuntimeRegistration +{ +} diff --git a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManager_Tests.cs b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManager_Tests.cs index 32c28e182f..0614192662 100644 --- a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManager_Tests.cs +++ b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo/Abp/BackgroundWorkers/DynamicBackgroundWorkerManager_Tests.cs @@ -22,10 +22,10 @@ public class DynamicBackgroundWorkerManager_Tests : BackgroundJobsTestBase } [Fact] - public void Should_Report_Provider_Capabilities() + public void Should_Report_Provider_Capabilities_Using_Marker_Interfaces() { - _dynamicWorkerManager.Capabilities.SupportsDynamicRegistration.ShouldBeTrue(); - _dynamicWorkerManager.Capabilities.SupportsCronExpression.ShouldBeFalse(); + (_dynamicWorkerManager is ISupportsRuntimeRegistration).ShouldBeTrue(); + (_dynamicWorkerManager is ISupportsCronScheduling).ShouldBeFalse(); } [Fact]