I've developed a custom service application which causes quite some load on a server. It processes a PDF document and performs OCR and some more recognition on it. For this we're using a third party component which is quite heavy.
It's ok that the process is a heavy one, that's just the way it is. But I'm using the service application from within workflows throughout the site. When multiple workflows fire at once, the server is running multiple OCR processes at once, which takes up too much resources.
So I'm looking for a way to properly manage this. I don't want to scale out immediately, so I'm looking for a way to queue the processing jobs. Since the workflows are async, it doesn't really matter how long the process takes.
I'm not quite sure what a good aproach would be, so I'm looking for some guidelines / best practices on this topic.