Isolating memory usage
I wrote a simple job scheduler.
- Every job implements a standard Interface and is launched by the scheduler via reflection.
- The scheduler tracks the start and end of those jobs, and it catches/logs/emails any exceptions that the jobs fail to handle.
- Jobs are written by different developers in my organization, and it is possible that they may have memory leaks.
I need a mechanism that would allow me to launch those jobs in their own memory spaces so that if they have memory leaks they don't endanger the operation of the scheduler itself. I also need a way to monitor total memory consumption, and if feasible, the memory consumption of each job.