what's the purpose of ReturnJob in IJobFactory

2019-06-15 16:20发布

问题:

I'm using simpleInjector as IOC container bue I dont have a clear view of what's the responsabillity of ReturnJob, I'd like to know how can I proceed?

this is the code I have done so far:

public class SimpleInjectorJobFactory:IJobFactory
    {
        private readonly Container _container;
        public SimpleInjectorJobFactory()
        {
            _container= new Container();
        }

        public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
        {
            return _container.GetInstance(bundle.JobDetail.JobType) as IJob;
        }

        public void ReturnJob(IJob job)
        {
            throw new System.NotImplementedException();
        }
    }

回答1:

This method allow returning the instance back to IoC container & Job factory for proper cleanup.

Check this commit on github.



回答2:

You can clean up the job;

   public void ReturnJob(IJob job)
   {
       (job as IDisposable)?.Dispose();
   }