My question pertains to concurrency.
Currently, we print Word™ documents via a tiff printer driver. However, we have a bottle-neck because the printer driver can only handle one print job at a time.
There is significant latency due to database calls (which we can not control), so the processors spends a lot of time idling. A simple solution would be to run multiple processes, but this requires some tricky mutex code since the print driver can only handle a single job at a time.
Question - Can the Aspose.word Document.Save be safely called concurrently by several processes on the same machine?
Also, what are the licensing implications of running this on several machines at the same location? Or to ask the question more generally, what is a “location”. Since my processes may run on virutual servers I honestly don’t know the physical location of the running process.
This message was posted using Aspose.Live 2 Forum
Thanks for your request. I suppose you mean multithreading. Aspose.Words is multithread safe as long as only one thread works on a document at a time. It is a typical scenario to have one thread working on one document. Different threads can safely work on different documents at the same time.
Regarding the question about licensing, you should ask this question in the Aspose.Purchase forum. My colleagues from sales team will answer you shortly.
I am referring to multiple executables running concurrently on the same machine under the same operating system. They are each processing different word documents to tiff.
So, I am speaking multi-threading in the sense that the operating system will run each instance in a seperate thread.
Currenlty, we are using a Windows Tiff Printer - but since there is only one instance of the Tiff Printer on the machine - running multiple processes using the Tiff Printer approach requires inter-process communication to ensure that one process finishes using the printer before any other process sets a new output file name.
Thanks for this additonal information.
Having the same executable processing different word documents through multithreading or multiple executables running concurrently but processing different word documents should be fine as there should be no conflicts.
The code from this post regarding multithreading print jobs might come in helpful to you. Have you tried sending multiple requests to the Windows Tiff Printer in the past? From memory most virtual printers should support a queue of printing jobs just like a regular printer.
If you have any further inqueries, please feel free to ask.