SmartThreadPool icon indicating copy to clipboard operation
SmartThreadPool copied to clipboard

is it must to ShutDown/Dispose STP?

Open MatheswaranSagadevan opened this issue 4 years ago • 3 comments

Hi, We recently explored STP, and started using it in one of our asp.net core application. and our implementation is like, during particular object's constructor we configure/instantiate the smart thread pool with work item groups and min, max threads etc.

There are two questions:

  1. We often face outofmemory exceptions, though we have 8 core, 16GB RAM with 1 TB HDD VM. any guidelines or best practices to adept ?
  2. when to use ShutDown and Dispose methods. Since this is a web application, we as said above, configured, in one of our singleton class. so when to dispose? or shutdown?
  3. I tried with destructor and it seems it didn't get called. Then I tried with application stopping event in asp.net core where I retrieve the singleton instance and called custom dispose method to shutdown and dispose stp. is this right approach?

Thanks, Matheswaran S

MatheswaranSagadevan avatar Nov 26 '21 14:11 MatheswaranSagadevan

Hi,

I assume that your application works like a service. Hence, always running and serve requests.

I think you should instatiate the smart thread pool only once in a singleton with min and max threads. Later on create work item groups with the concurrency you need and queue work items into them. Since your application work like a service (as I assumed) you don't need to call to shutdown or dispose at all. When you stop the service you can use WaitForIdle() to wait for incompleted work items to finish.

Regards, Ami

amibar avatar Nov 28 '21 08:11 amibar

Great, you are right it is a service. and I'm fine to use WaitForIdle instead of shutdown.

and how about Memory management.? any best practices and troubleshooting tips? because we often face outofmemory exception.

MatheswaranSagadevan avatar Nov 29 '21 07:11 MatheswaranSagadevan

The outofmemory exception is out of my scope. I assume you get the exception becuase you get too many requests than you can handle so the backlog explodes. Try to limit the backlog to avoid requests overflow.

amibar avatar Nov 29 '21 09:11 amibar