I have a job which needs to kick off some methods on another object. I'd like to be able to pass these into the job in its constructor.
Looking around, it seems that the only way to achieve this is to use one of IoC frameworks. Whilst this method will be a solution for me in the future, right now I need a vanilla solution, not requiring any IoC.
I am aware of the JobDataMap
but the Best Practices documentation advises against this due to serialization. The object is multi-threaded and statefull, so serializing would be code suicide anyhow.
How can I create a job similar to below:
public class MyJob : IJob
{
private readonly IFoo _foo;
public StopMonitoring(IFoo foo)
{
_foo = foo;
}
public void Execute(IJobExecutionContext context)
{
foo.GetCurrentState();
}
}
}
See Question&Answers more detail:os