I have a MVC C# web application with an efficiency problem. We have a controller method users can hit, which runs a notification process which can sometimes need to churn through 10k+ records, and send out associated notifications. This process can take 15+ minutes sometimes.
My question is just general, any guidance is appreciated.. How would I go about making this process more efficient? Ideally, the user would perform the action to hit our controller and kick off this giant process, and then be returned to normal app usage as the process runs in the background.
Would I just achieve this with asynchronous controller methods, or what?