mirror of
https://github.com/bitwarden/server.git
synced 2025-06-20 02:48:03 -05:00

* Enable NRT for Core/Jobs files * Enable NRT for Core/HostedServices files * Enable NRT for Core/Exceptions files * Enable NRT for Core/NotificationHub files --------- Co-authored-by: Bernd Schoolmann <mail@quexten.com>
30 lines
657 B
C#
30 lines
657 B
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Quartz;
|
|
using Quartz.Spi;
|
|
|
|
namespace Bit.Core.Jobs;
|
|
|
|
#nullable enable
|
|
|
|
public class JobFactory : IJobFactory
|
|
{
|
|
private readonly IServiceProvider _container;
|
|
|
|
public JobFactory(IServiceProvider container)
|
|
{
|
|
_container = container;
|
|
}
|
|
|
|
public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
|
|
{
|
|
var scope = _container.CreateScope();
|
|
return (scope.ServiceProvider.GetService(bundle.JobDetail.JobType) as IJob)!;
|
|
}
|
|
|
|
public void ReturnJob(IJob job)
|
|
{
|
|
var disposable = job as IDisposable;
|
|
disposable?.Dispose();
|
|
}
|
|
}
|