Browse Source

Merge pull request #17109 from abpframework/liangshiwei/group8

Group8 Enable nullable annotations
pull/17114/head
maliming 3 years ago
committed by GitHub
parent
commit
56e28dafa2
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj
  2. 8
      framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/AzureServiceBusMessageConsumer.cs
  3. 2
      framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/ClientConfig.cs
  4. 2
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj
  5. 4
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecuter.cs
  6. 4
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecutionException.cs
  7. 12
      framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobNameAttribute.cs
  8. 2
      framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj
  9. 2
      framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs
  10. 2
      framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/HangfireJobExecutionAdapter.cs
  11. 2
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj
  12. 4
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs
  13. 4
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs
  14. 2
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManageExtensions.cs
  15. 2
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs
  16. 6
      framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs
  17. 2
      framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj
  18. 2
      framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/IJobQueue.cs
  19. 18
      framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueue.cs
  20. 4
      framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueueConfiguration.cs
  21. 2
      framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/RabbitMqBackgroundJobManager.cs
  22. 2
      framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj
  23. 4
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobInfo.cs
  24. 2
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs
  25. 2
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/InMemoryBackgroundJobStore.cs
  26. 2
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj
  27. 2
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs
  28. 6
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerBase.cs
  29. 6
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs
  30. 6
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfirePeriodicBackgroundWorkerAdapter.cs
  31. 4
      framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/IHangfireBackgroundWorker.cs
  32. 2
      framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj
  33. 2
      framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs
  34. 6
      framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs
  35. 17
      framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzPeriodicBackgroundWorkerAdapter.cs
  36. 2
      framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj
  37. 8
      framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerBase.cs
  38. 2
      framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs
  39. 2
      framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj
  40. 6
      framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs
  41. 4
      framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireBackgroundJobServer.cs
  42. 2
      framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireModule.cs
  43. 13
      framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireOptions.cs
  44. 2
      framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj
  45. 2
      framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs
  46. 2
      framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzOptions.cs
  47. 2
      framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj
  48. 4
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs
  49. 2
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs
  50. 2
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/IChannelPool.cs
  51. 2
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/IConnectionPool.cs
  52. 2
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/IRabbitMqMessageConsumerFactory.cs
  53. 16
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs
  54. 2
      framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumerFactory.cs

2
framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.AzureServiceBus</AssemblyName> <AssemblyName>Volo.Abp.AzureServiceBus</AssemblyName>
<PackageId>Volo.Abp.AzureServiceBus</PackageId> <PackageId>Volo.Abp.AzureServiceBus</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

8
framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/AzureServiceBusMessageConsumer.cs

@ -20,9 +20,9 @@ public class AzureServiceBusMessageConsumer : IAzureServiceBusMessageConsumer, I
private readonly IExceptionNotifier _exceptionNotifier; private readonly IExceptionNotifier _exceptionNotifier;
private readonly IProcessorPool _processorPool; private readonly IProcessorPool _processorPool;
private readonly ConcurrentBag<Func<ServiceBusReceivedMessage, Task>> _callbacks; private readonly ConcurrentBag<Func<ServiceBusReceivedMessage, Task>> _callbacks;
private string _connectionName; private string _connectionName = default!;
private string _subscriptionName; private string _subscriptionName = default!;
private string _topicName; private string _topicName = default!;
public AzureServiceBusMessageConsumer( public AzureServiceBusMessageConsumer(
IExceptionNotifier exceptionNotifier, IExceptionNotifier exceptionNotifier,
@ -37,7 +37,7 @@ public class AzureServiceBusMessageConsumer : IAzureServiceBusMessageConsumer, I
public virtual void Initialize( public virtual void Initialize(
[NotNull] string topicName, [NotNull] string topicName,
[NotNull] string subscriptionName, [NotNull] string subscriptionName,
string connectionName) string? connectionName)
{ {
Check.NotNull(topicName, nameof(topicName)); Check.NotNull(topicName, nameof(topicName));
Check.NotNull(subscriptionName, nameof(subscriptionName)); Check.NotNull(subscriptionName, nameof(subscriptionName));

2
framework/src/Volo.Abp.AzureServiceBus/Volo/Abp/AzureServiceBus/ClientConfig.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.AzureServiceBus;
public class ClientConfig public class ClientConfig
{ {
public string ConnectionString { get; set; } public string ConnectionString { get; set; } = default!;
public ServiceBusAdministrationClientOptions Admin { get; set; } = new(); public ServiceBusAdministrationClientOptions Admin { get; set; } = new();

2
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundJobs.Abstractions</AssemblyName> <AssemblyName>Volo.Abp.BackgroundJobs.Abstractions</AssemblyName>
<PackageId>Volo.Abp.BackgroundJobs.Abstractions</PackageId> <PackageId>Volo.Abp.BackgroundJobs.Abstractions</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

4
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecuter.cs

@ -54,7 +54,7 @@ public class BackgroundJobExecuter : IBackgroundJobExecuter, ITransientDependenc
{ {
if (jobExecuteMethod.Name == nameof(IAsyncBackgroundJob<object>.ExecuteAsync)) if (jobExecuteMethod.Name == nameof(IAsyncBackgroundJob<object>.ExecuteAsync))
{ {
await ((Task)jobExecuteMethod.Invoke(job, new[] { context.JobArgs })); await ((Task)jobExecuteMethod.Invoke(job, new[] { context.JobArgs })!);
} }
else else
{ {
@ -74,7 +74,7 @@ public class BackgroundJobExecuter : IBackgroundJobExecuter, ITransientDependenc
throw new BackgroundJobExecutionException("A background job execution is failed. See inner exception for details.", ex) throw new BackgroundJobExecutionException("A background job execution is failed. See inner exception for details.", ex)
{ {
JobType = context.JobType.AssemblyQualifiedName, JobType = context.JobType.AssemblyQualifiedName!,
JobArgs = context.JobArgs JobArgs = context.JobArgs
}; };
} }

4
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobExecutionException.cs

@ -6,9 +6,9 @@ namespace Volo.Abp.BackgroundJobs;
[Serializable] [Serializable]
public class BackgroundJobExecutionException : AbpException public class BackgroundJobExecutionException : AbpException
{ {
public string JobType { get; set; } public string JobType { get; set; } = default!;
public object JobArgs { get; set; } public object JobArgs { get; set; } = default!;
public BackgroundJobExecutionException() public BackgroundJobExecutionException()
{ {

12
framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo/Abp/BackgroundJobs/BackgroundJobNameAttribute.cs

@ -22,11 +22,11 @@ public class BackgroundJobNameAttribute : Attribute, IBackgroundJobNameProvider
{ {
Check.NotNull(jobArgsType, nameof(jobArgsType)); Check.NotNull(jobArgsType, nameof(jobArgsType));
return jobArgsType return (jobArgsType
.GetCustomAttributes(true) .GetCustomAttributes(true)
.OfType<IBackgroundJobNameProvider>() .OfType<IBackgroundJobNameProvider>()
.FirstOrDefault() .FirstOrDefault()
?.Name ?.Name
?? jobArgsType.FullName; ?? jobArgsType.FullName)!;
} }
} }

2
framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundJobs.HangFire</AssemblyName> <AssemblyName>Volo.Abp.BackgroundJobs.HangFire</AssemblyName>
<PackageId>Volo.Abp.BackgroundJobs.HangFire</PackageId> <PackageId>Volo.Abp.BackgroundJobs.HangFire</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

2
framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/AbpBackgroundJobsHangfireModule.cs

@ -30,7 +30,7 @@ public class AbpBackgroundJobsHangfireModule : AbpModule
} }
} }
private BackgroundJobServer CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) private BackgroundJobServer? CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider)
{ {
serviceProvider.GetRequiredService<JobStorage>(); serviceProvider.GetRequiredService<JobStorage>();
return null; return null;

2
framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo/Abp/BackgroundJobs/Hangfire/HangfireJobExecutionAdapter.cs

@ -39,7 +39,7 @@ public class HangfireJobExecutionAdapter<TArgs>
using (var scope = ServiceScopeFactory.CreateScope()) using (var scope = ServiceScopeFactory.CreateScope())
{ {
var jobType = Options.GetJob(typeof(TArgs)).JobType; var jobType = Options.GetJob(typeof(TArgs)).JobType;
var context = new JobExecutionContext(scope.ServiceProvider, jobType, args, cancellationToken: cancellationToken); var context = new JobExecutionContext(scope.ServiceProvider, jobType, args!, cancellationToken: cancellationToken);
await JobExecuter.ExecuteAsync(context); await JobExecuter.ExecuteAsync(context);
} }
} }

2
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundJobs.Quartz</AssemblyName> <AssemblyName>Volo.Abp.BackgroundJobs.Quartz</AssemblyName>
<PackageId>Volo.Abp.BackgroundJobs.Quartz</PackageId> <PackageId>Volo.Abp.BackgroundJobs.Quartz</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

4
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobQuartzOptions.cs

@ -30,7 +30,7 @@ public class AbpBackgroundJobQuartzOptions
{ {
exception.RefireImmediately = true; exception.RefireImmediately = true;
var retryCount = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryCount)).To<int>(); var retryCount = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryCount))!.To<int>();
if (retryIndex > retryCount) if (retryIndex > retryCount)
{ {
exception.RefireImmediately = false; exception.RefireImmediately = false;
@ -38,7 +38,7 @@ public class AbpBackgroundJobQuartzOptions
return; return;
} }
var retryInterval = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryIntervalMillisecond)).To<int>(); var retryInterval = executionContext.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + nameof(RetryIntervalMillisecond))!.To<int>();
await Task.Delay(retryInterval); await Task.Delay(retryInterval);
} }
} }

4
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/AbpBackgroundJobsQuartzModule.cs

@ -19,10 +19,10 @@ public class AbpBackgroundJobsQuartzModule : AbpModule
public override void OnPreApplicationInitialization(ApplicationInitializationContext context) public override void OnPreApplicationInitialization(ApplicationInitializationContext context)
{ {
var options = context.ServiceProvider.GetService<IOptions<AbpBackgroundJobOptions>>().Value; var options = context.ServiceProvider.GetRequiredService<IOptions<AbpBackgroundJobOptions>>().Value;
if (!options.IsJobExecutionEnabled) if (!options.IsJobExecutionEnabled)
{ {
var quartzOptions = context.ServiceProvider.GetService<IOptions<AbpQuartzOptions>>().Value; var quartzOptions = context.ServiceProvider.GetRequiredService<IOptions<AbpQuartzOptions>>().Value;
quartzOptions.StartSchedulerFactory = scheduler => Task.CompletedTask; quartzOptions.StartSchedulerFactory = scheduler => Task.CompletedTask;
} }
} }

2
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManageExtensions.cs

@ -6,7 +6,7 @@ namespace Volo.Abp.BackgroundJobs.Quartz;
public static class QuartzBackgroundJobManageExtensions public static class QuartzBackgroundJobManageExtensions
{ {
public static async Task<string> EnqueueAsync<TArgs>(this IBackgroundJobManager backgroundJobManager, public static async Task<string?> EnqueueAsync<TArgs>(this IBackgroundJobManager backgroundJobManager,
TArgs args, int retryCount, int retryIntervalMillisecond, TArgs args, int retryCount, int retryIntervalMillisecond,
BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null)
{ {

2
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzBackgroundJobManager.cs

@ -37,7 +37,7 @@ public class QuartzBackgroundJobManager : IBackgroundJobManager, ITransientDepen
{ {
var jobDataMap = new JobDataMap var jobDataMap = new JobDataMap
{ {
{nameof(TArgs), JsonSerializer.Serialize(args)}, {nameof(TArgs), JsonSerializer.Serialize(args!)},
{JobDataPrefix+ nameof(Options.RetryCount), retryCount.ToString()}, {JobDataPrefix+ nameof(Options.RetryCount), retryCount.ToString()},
{JobDataPrefix+ nameof(Options.RetryIntervalMillisecond), retryIntervalMillisecond.ToString()}, {JobDataPrefix+ nameof(Options.RetryIntervalMillisecond), retryIntervalMillisecond.ToString()},
{JobDataPrefix+ RetryIndex, "0"} {JobDataPrefix+ RetryIndex, "0"}

6
framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo/Abp/BackgroundJobs/Quartz/QuartzJobExecutionAdapter.cs

@ -38,9 +38,9 @@ public class QuartzJobExecutionAdapter<TArgs> : IJob
{ {
using (var scope = ServiceScopeFactory.CreateScope()) using (var scope = ServiceScopeFactory.CreateScope())
{ {
var args = JsonSerializer.Deserialize<TArgs>(context.JobDetail.JobDataMap.GetString(nameof(TArgs))); var args = JsonSerializer.Deserialize<TArgs>(context.JobDetail.JobDataMap.GetString(nameof(TArgs))!);
var jobType = Options.GetJob(typeof(TArgs)).JobType; var jobType = Options.GetJob(typeof(TArgs)).JobType;
var jobContext = new JobExecutionContext(scope.ServiceProvider, jobType, args, cancellationToken: context.CancellationToken); var jobContext = new JobExecutionContext(scope.ServiceProvider, jobType, args!, cancellationToken: context.CancellationToken);
try try
{ {
await JobExecuter.ExecuteAsync(jobContext); await JobExecuter.ExecuteAsync(jobContext);
@ -49,7 +49,7 @@ public class QuartzJobExecutionAdapter<TArgs> : IJob
{ {
var jobExecutionException = new JobExecutionException(exception); var jobExecutionException = new JobExecutionException(exception);
var retryIndex = context.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex).To<int>(); var retryIndex = context.JobDetail.JobDataMap.GetString(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex)!.To<int>();
retryIndex++; retryIndex++;
context.JobDetail.JobDataMap.Put(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex, retryIndex.ToString()); context.JobDetail.JobDataMap.Put(QuartzBackgroundJobManager.JobDataPrefix + QuartzBackgroundJobManager.RetryIndex, retryIndex.ToString());

2
framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundJobs.RabbitMQ</AssemblyName> <AssemblyName>Volo.Abp.BackgroundJobs.RabbitMQ</AssemblyName>
<PackageId>Volo.Abp.BackgroundJobs.RabbitMQ</PackageId> <PackageId>Volo.Abp.BackgroundJobs.RabbitMQ</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

2
framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/IJobQueue.cs

@ -6,7 +6,7 @@ namespace Volo.Abp.BackgroundJobs.RabbitMQ;
public interface IJobQueue<in TArgs> : IRunnable, IDisposable public interface IJobQueue<in TArgs> : IRunnable, IDisposable
{ {
Task<string> EnqueueAsync( Task<string?> EnqueueAsync(
TArgs args, TArgs args,
BackgroundJobPriority priority = BackgroundJobPriority.Normal, BackgroundJobPriority priority = BackgroundJobPriority.Normal,
TimeSpan? delay = null TimeSpan? delay = null

18
framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueue.cs

@ -21,8 +21,8 @@ public class JobQueue<TArgs> : IJobQueue<TArgs>
protected BackgroundJobConfiguration JobConfiguration { get; } protected BackgroundJobConfiguration JobConfiguration { get; }
protected JobQueueConfiguration QueueConfiguration { get; } protected JobQueueConfiguration QueueConfiguration { get; }
protected IChannelAccessor ChannelAccessor { get; private set; } protected IChannelAccessor? ChannelAccessor { get; private set; }
protected AsyncEventingBasicConsumer Consumer { get; private set; } protected AsyncEventingBasicConsumer? Consumer { get; private set; }
public ILogger<JobQueue<TArgs>> Logger { get; set; } public ILogger<JobQueue<TArgs>> Logger { get; set; }
@ -71,7 +71,7 @@ public class JobQueue<TArgs> : IJobQueue<TArgs>
); );
} }
public virtual async Task<string> EnqueueAsync( public virtual async Task<string?> EnqueueAsync(
TArgs args, TArgs args,
BackgroundJobPriority priority = BackgroundJobPriority.Normal, BackgroundJobPriority priority = BackgroundJobPriority.Normal,
TimeSpan? delay = null) TimeSpan? delay = null)
@ -176,11 +176,11 @@ public class JobQueue<TArgs> : IJobQueue<TArgs>
basicProperties.Expiration = delay.Value.TotalMilliseconds.ToString(); basicProperties.Expiration = delay.Value.TotalMilliseconds.ToString();
} }
ChannelAccessor.Channel.BasicPublish( ChannelAccessor!.Channel.BasicPublish(
exchange: "", exchange: "",
routingKey: routingKey, routingKey: routingKey,
basicProperties: basicProperties, basicProperties: basicProperties,
body: Serializer.Serialize(args) body: Serializer.Serialize(args!)
); );
return Task.CompletedTask; return Task.CompletedTask;
@ -188,7 +188,7 @@ public class JobQueue<TArgs> : IJobQueue<TArgs>
protected virtual IBasicProperties CreateBasicPropertiesToPublish() protected virtual IBasicProperties CreateBasicPropertiesToPublish()
{ {
var properties = ChannelAccessor.Channel.CreateBasicProperties(); var properties = ChannelAccessor!.Channel.CreateBasicProperties();
properties.Persistent = true; properties.Persistent = true;
return properties; return properties;
} }
@ -206,17 +206,17 @@ public class JobQueue<TArgs> : IJobQueue<TArgs>
try try
{ {
await JobExecuter.ExecuteAsync(context); await JobExecuter.ExecuteAsync(context);
ChannelAccessor.Channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); ChannelAccessor!.Channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
} }
catch (BackgroundJobExecutionException) catch (BackgroundJobExecutionException)
{ {
//TODO: Reject like that? //TODO: Reject like that?
ChannelAccessor.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: true); ChannelAccessor!.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: true);
} }
catch (Exception) catch (Exception)
{ {
//TODO: Reject like that? //TODO: Reject like that?
ChannelAccessor.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: false); ChannelAccessor!.Channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: false);
} }
} }
} }

4
framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/JobQueueConfiguration.cs

@ -9,7 +9,7 @@ public class JobQueueConfiguration : QueueDeclareConfiguration
{ {
public Type JobArgsType { get; } public Type JobArgsType { get; }
public string ConnectionName { get; set; } public string? ConnectionName { get; set; }
public string DelayedQueueName { get; set; } public string DelayedQueueName { get; set; }
@ -17,7 +17,7 @@ public class JobQueueConfiguration : QueueDeclareConfiguration
Type jobArgsType, Type jobArgsType,
string queueName, string queueName,
string delayedQueueName, string delayedQueueName,
string connectionName = null, string? connectionName = null,
bool durable = true, bool durable = true,
bool exclusive = false, bool exclusive = false,
bool autoDelete = false, bool autoDelete = false,

2
framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo/Abp/BackgroundJobs/RabbitMQ/RabbitMqBackgroundJobManager.cs

@ -20,6 +20,6 @@ public class RabbitMqBackgroundJobManager : IBackgroundJobManager, ITransientDep
TimeSpan? delay = null) TimeSpan? delay = null)
{ {
var jobQueue = await _jobQueueManager.GetAsync<TArgs>(); var jobQueue = await _jobQueueManager.GetAsync<TArgs>();
return await jobQueue.EnqueueAsync(args, priority, delay); return (await jobQueue.EnqueueAsync(args, priority, delay))!;
} }
} }

2
framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundJobs</AssemblyName> <AssemblyName>Volo.Abp.BackgroundJobs</AssemblyName>
<PackageId>Volo.Abp.BackgroundJobs</PackageId> <PackageId>Volo.Abp.BackgroundJobs</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

4
framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobInfo.cs

@ -12,12 +12,12 @@ public class BackgroundJobInfo
/// <summary> /// <summary>
/// Name of the job. /// Name of the job.
/// </summary> /// </summary>
public virtual string JobName { get; set; } public virtual string JobName { get; set; } = default!;
/// <summary> /// <summary>
/// Job arguments as serialized to string. /// Job arguments as serialized to string.
/// </summary> /// </summary>
public virtual string JobArgs { get; set; } public virtual string JobArgs { get; set; } = default!;
/// <summary> /// <summary>
/// Try count of this job. /// Try count of this job.

2
framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs

@ -32,7 +32,7 @@ public class DefaultBackgroundJobManager : IBackgroundJobManager, ITransientDepe
public virtual async Task<string> EnqueueAsync<TArgs>(TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null) public virtual async Task<string> EnqueueAsync<TArgs>(TArgs args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null)
{ {
var jobName = BackgroundJobNameAttribute.GetName<TArgs>(); var jobName = BackgroundJobNameAttribute.GetName<TArgs>();
var jobId = await EnqueueAsync(jobName, args, priority, delay); var jobId = await EnqueueAsync(jobName, args!, priority, delay);
return jobId.ToString(); return jobId.ToString();
} }

2
framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/InMemoryBackgroundJobStore.cs

@ -25,7 +25,7 @@ public class InMemoryBackgroundJobStore : IBackgroundJobStore, ISingletonDepende
public virtual Task<BackgroundJobInfo> FindAsync(Guid jobId) public virtual Task<BackgroundJobInfo> FindAsync(Guid jobId)
{ {
return Task.FromResult(_jobs.GetOrDefault(jobId)); return Task.FromResult(_jobs.GetOrDefault(jobId))!;
} }
public virtual Task InsertAsync(BackgroundJobInfo jobInfo) public virtual Task InsertAsync(BackgroundJobInfo jobInfo)

2
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundWorkers.Hangfire</AssemblyName> <AssemblyName>Volo.Abp.BackgroundWorkers.Hangfire</AssemblyName>
<PackageId>Volo.Abp.BackgroundWorkers.Hangfire</PackageId> <PackageId>Volo.Abp.BackgroundWorkers.Hangfire</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

2
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/AbpBackgroundWorkersHangfireModule.cs

@ -38,7 +38,7 @@ public class AbpBackgroundWorkersHangfireModule : AbpModule
AsyncHelper.RunSync(() => OnPreApplicationInitializationAsync(context)); AsyncHelper.RunSync(() => OnPreApplicationInitializationAsync(context));
} }
private BackgroundJobServer CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider) private BackgroundJobServer? CreateOnlyEnqueueJobServer(IServiceProvider serviceProvider)
{ {
serviceProvider.GetRequiredService<JobStorage>(); serviceProvider.GetRequiredService<JobStorage>();
return null; return null;

6
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerBase.cs

@ -6,11 +6,11 @@ namespace Volo.Abp.BackgroundWorkers.Hangfire;
public abstract class HangfireBackgroundWorkerBase : BackgroundWorkerBase, IHangfireBackgroundWorker public abstract class HangfireBackgroundWorkerBase : BackgroundWorkerBase, IHangfireBackgroundWorker
{ {
public string RecurringJobId { get; set; } public string? RecurringJobId { get; set; }
public string CronExpression { get; set; } public string CronExpression { get; set; } = default!;
public TimeZoneInfo TimeZone { get; set; } public TimeZoneInfo? TimeZone { get; set; }
public string Queue { get; set; } public string Queue { get; set; }

6
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfireBackgroundWorkerManager.cs

@ -14,7 +14,7 @@ namespace Volo.Abp.BackgroundWorkers.Hangfire;
[Dependency(ReplaceServices = true)] [Dependency(ReplaceServices = true)]
public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISingletonDependency public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISingletonDependency
{ {
protected AbpHangfireBackgroundJobServer BackgroundJobServer { get; set; } protected AbpHangfireBackgroundJobServer BackgroundJobServer { get; set; } = default!;
protected IServiceProvider ServiceProvider { get; } protected IServiceProvider ServiceProvider { get; }
public HangfireBackgroundWorkerManager(IServiceProvider serviceProvider) public HangfireBackgroundWorkerManager(IServiceProvider serviceProvider)
@ -57,7 +57,7 @@ public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISinglet
var timer = worker.GetType() var timer = worker.GetType()
.GetProperty("Timer", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(worker); .GetProperty("Timer", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(worker);
var period = worker is AsyncPeriodicBackgroundWorkerBase ? ((AbpAsyncTimer)timer)?.Period : ((AbpTimer)timer)?.Period; var period = worker is AsyncPeriodicBackgroundWorkerBase ? ((AbpAsyncTimer?)timer)?.Period : ((AbpTimer?)timer)?.Period;
if (period == null) if (period == null)
{ {
@ -65,7 +65,7 @@ public class HangfireBackgroundWorkerManager : BackgroundWorkerManager, ISinglet
} }
var adapterType = typeof(HangfirePeriodicBackgroundWorkerAdapter<>).MakeGenericType(ProxyHelper.GetUnProxiedType(worker)); var adapterType = typeof(HangfirePeriodicBackgroundWorkerAdapter<>).MakeGenericType(ProxyHelper.GetUnProxiedType(worker));
var workerAdapter = Activator.CreateInstance(adapterType) as IHangfireBackgroundWorker; var workerAdapter = (Activator.CreateInstance(adapterType) as IHangfireBackgroundWorker)!;
RecurringJob.AddOrUpdate(() => workerAdapter.DoWorkAsync(cancellationToken), GetCron(period.Value), workerAdapter.TimeZone, workerAdapter.Queue); RecurringJob.AddOrUpdate(() => workerAdapter.DoWorkAsync(cancellationToken), GetCron(period.Value), workerAdapter.TimeZone, workerAdapter.Queue);

6
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/HangfirePeriodicBackgroundWorkerAdapter.cs

@ -14,8 +14,8 @@ public class HangfirePeriodicBackgroundWorkerAdapter<TWorker> : HangfireBackgrou
public HangfirePeriodicBackgroundWorkerAdapter() public HangfirePeriodicBackgroundWorkerAdapter()
{ {
_doWorkAsyncMethod = _doWorkAsyncMethod =
typeof(TWorker).GetMethod("DoWorkAsync", BindingFlags.Instance | BindingFlags.NonPublic); typeof(TWorker).GetMethod("DoWorkAsync", BindingFlags.Instance | BindingFlags.NonPublic)!;
_doWorkMethod = typeof(TWorker).GetMethod("DoWork", BindingFlags.Instance | BindingFlags.NonPublic); _doWorkMethod = typeof(TWorker).GetMethod("DoWork", BindingFlags.Instance | BindingFlags.NonPublic)!;
} }
public async override Task DoWorkAsync(CancellationToken cancellationToken = default) public async override Task DoWorkAsync(CancellationToken cancellationToken = default)
@ -26,7 +26,7 @@ public class HangfirePeriodicBackgroundWorkerAdapter<TWorker> : HangfireBackgrou
switch (worker) switch (worker)
{ {
case AsyncPeriodicBackgroundWorkerBase asyncPeriodicBackgroundWorker: case AsyncPeriodicBackgroundWorkerBase asyncPeriodicBackgroundWorker:
await (Task)_doWorkAsyncMethod.Invoke(asyncPeriodicBackgroundWorker, new object[] { workerContext }); await (Task)(_doWorkAsyncMethod.Invoke(asyncPeriodicBackgroundWorker, new object[] { workerContext })!);
break; break;
case PeriodicBackgroundWorkerBase periodicBackgroundWorker: case PeriodicBackgroundWorkerBase periodicBackgroundWorker:
_doWorkMethod.Invoke(periodicBackgroundWorker, new object[] { workerContext }); _doWorkMethod.Invoke(periodicBackgroundWorker, new object[] { workerContext });

4
framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo/Abp/BackgroundWorkers/Hangfire/IHangfireBackgroundWorker.cs

@ -6,11 +6,11 @@ namespace Volo.Abp.BackgroundWorkers.Hangfire;
public interface IHangfireBackgroundWorker : IBackgroundWorker public interface IHangfireBackgroundWorker : IBackgroundWorker
{ {
string RecurringJobId { get; set; } string? RecurringJobId { get; set; }
string CronExpression { get; set; } string CronExpression { get; set; }
TimeZoneInfo TimeZone { get; set; } TimeZoneInfo? TimeZone { get; set; }
string Queue { get; set; } string Queue { get; set; }

2
framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj

@ -6,6 +6,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundWorkers.Quartz</AssemblyName> <AssemblyName>Volo.Abp.BackgroundWorkers.Quartz</AssemblyName>
<PackageId>Volo.Abp.BackgroundWorkers.Quartz</PackageId> <PackageId>Volo.Abp.BackgroundWorkers.Quartz</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

2
framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/IQuartzBackgroundWorker.cs

@ -12,5 +12,5 @@ public interface IQuartzBackgroundWorker : IBackgroundWorker, IJob
bool AutoRegister { get; set; } bool AutoRegister { get; set; }
Func<IScheduler, Task> ScheduleJob { get; set; } Func<IScheduler, Task>? ScheduleJob { get; set; }
} }

6
framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerBase.cs

@ -6,13 +6,13 @@ namespace Volo.Abp.BackgroundWorkers.Quartz;
public abstract class QuartzBackgroundWorkerBase : BackgroundWorkerBase, IQuartzBackgroundWorker public abstract class QuartzBackgroundWorkerBase : BackgroundWorkerBase, IQuartzBackgroundWorker
{ {
public ITrigger Trigger { get; set; } public ITrigger Trigger { get; set; } = default!;
public IJobDetail JobDetail { get; set; } public IJobDetail JobDetail { get; set; } = default!;
public bool AutoRegister { get; set; } = true; public bool AutoRegister { get; set; } = true;
public Func<IScheduler, Task> ScheduleJob { get; set; } = null; public Func<IScheduler, Task>? ScheduleJob { get; set; } = null;
public abstract Task Execute(IJobExecutionContext context); public abstract Task Execute(IJobExecutionContext context);
} }

17
framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzPeriodicBackgroundWorkerAdapter.cs

@ -1,6 +1,7 @@
using System; using System;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Quartz; using Quartz;
using Volo.Abp.DynamicProxy; using Volo.Abp.DynamicProxy;
using Volo.Abp.Threading; using Volo.Abp.Threading;
@ -12,8 +13,8 @@ public class QuartzPeriodicBackgroundWorkerAdapter<TWorker> : QuartzBackgroundWo
IQuartzBackgroundWorkerAdapter IQuartzBackgroundWorkerAdapter
where TWorker : IBackgroundWorker where TWorker : IBackgroundWorker
{ {
private readonly MethodInfo _doWorkAsyncMethod; private readonly MethodInfo? _doWorkAsyncMethod;
private readonly MethodInfo _doWorkMethod; private readonly MethodInfo? _doWorkMethod;
public QuartzPeriodicBackgroundWorkerAdapter() public QuartzPeriodicBackgroundWorkerAdapter()
{ {
@ -40,11 +41,11 @@ public class QuartzPeriodicBackgroundWorkerAdapter<TWorker> : QuartzBackgroundWo
if (worker is AsyncPeriodicBackgroundWorkerBase) if (worker is AsyncPeriodicBackgroundWorkerBase)
{ {
period = ((AbpAsyncTimer)timer)?.Period; period = ((AbpAsyncTimer?)timer)?.Period;
} }
else else
{ {
period = ((AbpTimer)timer)?.Period; period = ((AbpTimer?)timer)?.Period;
} }
} }
else else
@ -59,17 +60,17 @@ public class QuartzPeriodicBackgroundWorkerAdapter<TWorker> : QuartzBackgroundWo
JobDetail = JobBuilder JobDetail = JobBuilder
.Create<QuartzPeriodicBackgroundWorkerAdapter<TWorker>>() .Create<QuartzPeriodicBackgroundWorkerAdapter<TWorker>>()
.WithIdentity(workerType.FullName) .WithIdentity(workerType.FullName!)
.Build(); .Build();
Trigger = TriggerBuilder.Create() Trigger = TriggerBuilder.Create()
.WithIdentity(workerType.FullName) .WithIdentity(workerType.FullName!)
.WithSimpleSchedule(builder => builder.WithInterval(TimeSpan.FromMilliseconds(period.Value)).RepeatForever()) .WithSimpleSchedule(builder => builder.WithInterval(TimeSpan.FromMilliseconds(period.Value)).RepeatForever())
.Build(); .Build();
} }
public async override Task Execute(IJobExecutionContext context) public async override Task Execute(IJobExecutionContext context)
{ {
var worker = (IBackgroundWorker) ServiceProvider.GetService(typeof(TWorker)); var worker = (IBackgroundWorker) ServiceProvider.GetRequiredService(typeof(TWorker));
var workerContext = new PeriodicBackgroundWorkerContext(ServiceProvider, context.CancellationToken); var workerContext = new PeriodicBackgroundWorkerContext(ServiceProvider, context.CancellationToken);
switch (worker) switch (worker)
@ -78,7 +79,7 @@ public class QuartzPeriodicBackgroundWorkerAdapter<TWorker> : QuartzBackgroundWo
{ {
if (_doWorkAsyncMethod != null) if (_doWorkAsyncMethod != null)
{ {
await (Task) _doWorkAsyncMethod.Invoke(asyncWorker, new object[] {workerContext}); await (Task) (_doWorkAsyncMethod.Invoke(asyncWorker, new object[] {workerContext})!);
} }
break; break;

2
framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.BackgroundWorkers</AssemblyName> <AssemblyName>Volo.Abp.BackgroundWorkers</AssemblyName>
<PackageId>Volo.Abp.BackgroundWorkers</PackageId> <PackageId>Volo.Abp.BackgroundWorkers</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

8
framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/BackgroundWorkerBase.cs

@ -14,13 +14,13 @@ public abstract class BackgroundWorkerBase : IBackgroundWorker
{ {
//TODO: Add UOW, Localization and other useful properties..? //TODO: Add UOW, Localization and other useful properties..?
public IAbpLazyServiceProvider LazyServiceProvider { get; set; } public IAbpLazyServiceProvider LazyServiceProvider { get; set; } = default!;
public IServiceProvider ServiceProvider { get; set; } public IServiceProvider ServiceProvider { get; set; } = default!;
protected ILoggerFactory LoggerFactory => LazyServiceProvider.LazyGetRequiredService<ILoggerFactory>(); protected ILoggerFactory LoggerFactory => LazyServiceProvider.LazyGetRequiredService<ILoggerFactory>();
protected ILogger Logger => LazyServiceProvider.LazyGetService<ILogger>(provider => LoggerFactory?.CreateLogger(GetType().FullName) ?? NullLogger.Instance); protected ILogger Logger => LazyServiceProvider.LazyGetService<ILogger>(provider => LoggerFactory?.CreateLogger(GetType().FullName!) ?? NullLogger.Instance);
protected CancellationTokenSource StoppingTokenSource { get; } protected CancellationTokenSource StoppingTokenSource { get; }
protected CancellationToken StoppingToken { get; } protected CancellationToken StoppingToken { get; }
@ -47,6 +47,6 @@ public abstract class BackgroundWorkerBase : IBackgroundWorker
public override string ToString() public override string ToString()
{ {
return GetType().FullName; return GetType().FullName!;
} }
} }

2
framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs

@ -37,7 +37,7 @@ public abstract class PeriodicBackgroundWorkerBase : BackgroundWorkerBase
await base.StopAsync(cancellationToken); await base.StopAsync(cancellationToken);
} }
private void Timer_Elapsed(object sender, System.EventArgs e) private void Timer_Elapsed(object? sender, System.EventArgs e)
{ {
using (var scope = ServiceScopeFactory.CreateScope()) using (var scope = ServiceScopeFactory.CreateScope())
{ {

2
framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.HangFire</AssemblyName> <AssemblyName>Volo.Abp.HangFire</AssemblyName>
<PackageId>Volo.Abp.HangFire</PackageId> <PackageId>Volo.Abp.HangFire</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

6
framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs

@ -10,9 +10,9 @@ namespace Volo.Abp.Hangfire;
public class AbpHangfireAuthorizationFilter : IDashboardAsyncAuthorizationFilter public class AbpHangfireAuthorizationFilter : IDashboardAsyncAuthorizationFilter
{ {
private readonly bool _enableTenant; private readonly bool _enableTenant;
private readonly string _requiredPermissionName; private readonly string? _requiredPermissionName;
public AbpHangfireAuthorizationFilter(bool enableTenant = false, string requiredPermissionName = null) public AbpHangfireAuthorizationFilter(bool enableTenant = false, string? requiredPermissionName = null)
{ {
_enableTenant = requiredPermissionName.IsNullOrWhiteSpace() ? enableTenant : true; _enableTenant = requiredPermissionName.IsNullOrWhiteSpace() ? enableTenant : true;
_requiredPermissionName = requiredPermissionName; _requiredPermissionName = requiredPermissionName;
@ -30,7 +30,7 @@ public class AbpHangfireAuthorizationFilter : IDashboardAsyncAuthorizationFilter
return true; return true;
} }
return await IsPermissionGrantedAsync(context, _requiredPermissionName); return await IsPermissionGrantedAsync(context, _requiredPermissionName!);
} }
private static bool IsLoggedIn(DashboardContext context, bool enableTenant) private static bool IsLoggedIn(DashboardContext context, bool enableTenant)

4
framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireBackgroundJobServer.cs

@ -4,9 +4,9 @@ namespace Volo.Abp.Hangfire;
public class AbpHangfireBackgroundJobServer public class AbpHangfireBackgroundJobServer
{ {
public BackgroundJobServer HangfireJobServer { get; } public BackgroundJobServer? HangfireJobServer { get; }
public AbpHangfireBackgroundJobServer(BackgroundJobServer hangfireJobServer) public AbpHangfireBackgroundJobServer(BackgroundJobServer? hangfireJobServer)
{ {
HangfireJobServer = hangfireJobServer; HangfireJobServer = hangfireJobServer;
} }

2
framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireModule.cs

@ -9,7 +9,7 @@ namespace Volo.Abp.Hangfire;
[DependsOn(typeof(AbpAuthorizationAbstractionsModule))] [DependsOn(typeof(AbpAuthorizationAbstractionsModule))]
public class AbpHangfireModule : AbpModule public class AbpHangfireModule : AbpModule
{ {
private AbpHangfireBackgroundJobServer _backgroundJobServer; private AbpHangfireBackgroundJobServer? _backgroundJobServer;
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {

13
framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireOptions.cs

@ -12,21 +12,18 @@ namespace Volo.Abp.Hangfire;
public class AbpHangfireOptions public class AbpHangfireOptions
{ {
[CanBeNull] public BackgroundJobServerOptions? ServerOptions { get; set; }
public BackgroundJobServerOptions ServerOptions { get; set; }
[CanBeNull] public IEnumerable<IBackgroundProcess>? AdditionalProcesses { get; set; }
public IEnumerable<IBackgroundProcess> AdditionalProcesses { get; set; }
[CanBeNull] public JobStorage? Storage { get; set; }
public JobStorage Storage { get; set; }
[NotNull] [NotNull]
public Func<IServiceProvider, BackgroundJobServer> BackgroundJobServerFactory { public Func<IServiceProvider, BackgroundJobServer?> BackgroundJobServerFactory {
get => _backgroundJobServerFactory; get => _backgroundJobServerFactory;
set => _backgroundJobServerFactory = Check.NotNull(value, nameof(value)); set => _backgroundJobServerFactory = Check.NotNull(value, nameof(value));
} }
private Func<IServiceProvider, BackgroundJobServer> _backgroundJobServerFactory; private Func<IServiceProvider, BackgroundJobServer?> _backgroundJobServerFactory;
public AbpHangfireOptions() public AbpHangfireOptions()
{ {

2
framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.Quartz</AssemblyName> <AssemblyName>Volo.Abp.Quartz</AssemblyName>
<PackageId>Volo.Abp.Quartz</PackageId> <PackageId>Volo.Abp.Quartz</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

2
framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzModule.cs

@ -10,7 +10,7 @@ namespace Volo.Abp.Quartz;
public class AbpQuartzModule : AbpModule public class AbpQuartzModule : AbpModule
{ {
private IScheduler _scheduler; private IScheduler _scheduler = default!;
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {

2
framework/src/Volo.Abp.Quartz/Volo/Abp/Quartz/AbpQuartzOptions.cs

@ -13,7 +13,7 @@ public class AbpQuartzOptions
/// </summary> /// </summary>
public NameValueCollection Properties { get; set; } public NameValueCollection Properties { get; set; }
public Action<IServiceCollectionQuartzConfigurator> Configurator { get; set; } public Action<IServiceCollectionQuartzConfigurator>? Configurator { get; set; }
/// <summary> /// <summary>
/// How long Quartz should wait before starting. Default: 0. /// How long Quartz should wait before starting. Default: 0.

2
framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.RabbitMQ</AssemblyName> <AssemblyName>Volo.Abp.RabbitMQ</AssemblyName>
<PackageId>Volo.Abp.RabbitMQ</PackageId> <PackageId>Volo.Abp.RabbitMQ</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

4
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ChannelPool.cs

@ -29,7 +29,7 @@ public class ChannelPool : IChannelPool, ISingletonDependency
Logger = NullLogger<ChannelPool>.Instance; Logger = NullLogger<ChannelPool>.Instance;
} }
public virtual IChannelAccessor Acquire(string channelName = null, string connectionName = null) public virtual IChannelAccessor Acquire(string? channelName = null, string? connectionName = null)
{ {
CheckDisposed(); CheckDisposed();
@ -49,7 +49,7 @@ public class ChannelPool : IChannelPool, ISingletonDependency
); );
} }
protected virtual IModel CreateChannel(string channelName, string connectionName) protected virtual IModel CreateChannel(string channelName, string? connectionName)
{ {
return ConnectionPool return ConnectionPool
.Get(connectionName) .Get(connectionName)

2
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/ConnectionPool.cs

@ -21,7 +21,7 @@ public class ConnectionPool : IConnectionPool, ISingletonDependency
Connections = new ConcurrentDictionary<string, Lazy<IConnection>>(); Connections = new ConcurrentDictionary<string, Lazy<IConnection>>();
} }
public virtual IConnection Get(string connectionName = null) public virtual IConnection Get(string? connectionName = null)
{ {
connectionName ??= RabbitMqConnections.DefaultConnectionName; connectionName ??= RabbitMqConnections.DefaultConnectionName;

2
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/IChannelPool.cs

@ -4,5 +4,5 @@ namespace Volo.Abp.RabbitMQ;
public interface IChannelPool : IDisposable public interface IChannelPool : IDisposable
{ {
IChannelAccessor Acquire(string channelName = null, string connectionName = null); IChannelAccessor Acquire(string? channelName = null, string? connectionName = null);
} }

2
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/IConnectionPool.cs

@ -5,5 +5,5 @@ namespace Volo.Abp.RabbitMQ;
public interface IConnectionPool : IDisposable public interface IConnectionPool : IDisposable
{ {
IConnection Get(string connectionName = null); IConnection Get(string? connectionName = null);
} }

2
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/IRabbitMqMessageConsumerFactory.cs

@ -14,6 +14,6 @@ public interface IRabbitMqMessageConsumerFactory
IRabbitMqMessageConsumer Create( IRabbitMqMessageConsumer Create(
ExchangeDeclareConfiguration exchange, ExchangeDeclareConfiguration exchange,
QueueDeclareConfiguration queue, QueueDeclareConfiguration queue,
string connectionName = null string? connectionName = null
); );
} }

16
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumer.cs

@ -23,15 +23,15 @@ public class RabbitMqMessageConsumer : IRabbitMqMessageConsumer, ITransientDepen
protected AbpAsyncTimer Timer { get; } protected AbpAsyncTimer Timer { get; }
protected ExchangeDeclareConfiguration Exchange { get; private set; } protected ExchangeDeclareConfiguration Exchange { get; private set; } = default!;
protected QueueDeclareConfiguration Queue { get; private set; } protected QueueDeclareConfiguration Queue { get; private set; } = default!;
protected string ConnectionName { get; private set; } protected string? ConnectionName { get; private set; }
protected ConcurrentBag<Func<IModel, BasicDeliverEventArgs, Task>> Callbacks { get; } protected ConcurrentBag<Func<IModel, BasicDeliverEventArgs, Task>> Callbacks { get; }
protected IModel Channel { get; private set; } protected IModel? Channel { get; private set; }
protected ConcurrentQueue<QueueBindCommand> QueueBindCommands { get; } protected ConcurrentQueue<QueueBindCommand> QueueBindCommands { get; }
@ -58,7 +58,7 @@ public class RabbitMqMessageConsumer : IRabbitMqMessageConsumer, ITransientDepen
public void Initialize( public void Initialize(
[NotNull] ExchangeDeclareConfiguration exchange, [NotNull] ExchangeDeclareConfiguration exchange,
[NotNull] QueueDeclareConfiguration queue, [NotNull] QueueDeclareConfiguration queue,
string connectionName = null) string? connectionName = null)
{ {
Exchange = Check.NotNull(exchange, nameof(exchange)); Exchange = Check.NotNull(exchange, nameof(exchange));
Queue = Check.NotNull(queue, nameof(queue)); Queue = Check.NotNull(queue, nameof(queue));
@ -192,16 +192,16 @@ public class RabbitMqMessageConsumer : IRabbitMqMessageConsumer, ITransientDepen
{ {
foreach (var callback in Callbacks) foreach (var callback in Callbacks)
{ {
await callback(Channel, basicDeliverEventArgs); await callback(Channel!, basicDeliverEventArgs);
} }
Channel.BasicAck(basicDeliverEventArgs.DeliveryTag, multiple: false); Channel?.BasicAck(basicDeliverEventArgs.DeliveryTag, multiple: false);
} }
catch (Exception ex) catch (Exception ex)
{ {
try try
{ {
Channel.BasicNack( Channel?.BasicNack(
basicDeliverEventArgs.DeliveryTag, basicDeliverEventArgs.DeliveryTag,
multiple: false, multiple: false,
requeue: true requeue: true

2
framework/src/Volo.Abp.RabbitMQ/Volo/Abp/RabbitMQ/RabbitMqMessageConsumerFactory.cs

@ -16,7 +16,7 @@ public class RabbitMqMessageConsumerFactory : IRabbitMqMessageConsumerFactory, I
public IRabbitMqMessageConsumer Create( public IRabbitMqMessageConsumer Create(
ExchangeDeclareConfiguration exchange, ExchangeDeclareConfiguration exchange,
QueueDeclareConfiguration queue, QueueDeclareConfiguration queue,
string connectionName = null) string? connectionName = null)
{ {
var consumer = ServiceScope.ServiceProvider.GetRequiredService<RabbitMqMessageConsumer>(); var consumer = ServiceScope.ServiceProvider.GetRequiredService<RabbitMqMessageConsumer>();
consumer.Initialize(exchange, queue, connectionName); consumer.Initialize(exchange, queue, connectionName);

Loading…
Cancel
Save