NiceLabel Automation supports parallel processing for both – inbound and outbound processing. This ensures maximum efficiency on any system with installed software. NiceLabel Automation executes multiple tasks simultaneously, while still preserving the order in which the triggers have been added. Throughput of label job processing depends greatly on the hardware in use.
Inbound Parallel Processing
You can run many triggers on the same machine. They all simultaneously respond to changes in the monitored events. Each trigger remembers the data of unprocessed events on the queue list. This list buffers incoming data in case none of the print processes is available at the moment. As soon as one of the print processes becomes available, the first job is taken from queue using FIFO (First In, First Out) principle. This ensures the correct order of inbound data processing. However, it does not ensure the FIFO principle for printing. See the next section below.
Parallel processing means more than just running multiple triggers at once. Each trigger can also allow concurrent connections. TCP/IP, HTTP, and Web Service triggers all accept concurrent connections from many clients. Also, file trigger can be configured to monitor a set of files in a folder. This is configurable by file mask.
Outbound Parallel Processing
Usually, the result of a trigger is label printing process. For this process, you are using data received by the trigger to print it on labels. NiceLabel Automation service runs the printing processes (aka "print engines") in parallel in the background. Modern processors have two or more independent central processing units called cores. Multiple cores can run multiple instructions at the same time, increasing the overall speed of processing. In case of NiceLabel Automation, multiple cores increase print job processing, and ultimately label printing performance.
By default, each NiceLabel Automation instance runs each printing process as a separate thread on every available core. The more powerful CPU you have, the more throughput is available. This maximizes the usage of the available CPU power. The software installs with reasonable defaults defining that every available core accommodates a single thread for print processing. Under normal circumstances, there is no need to make any changes on the defaults. If the configuration setup requires a change, see section Changing Multi-threaded Printing Defaults.
If there are multiple printing processes available, the data from the first event can be printed by one printing process, while the data from the second event could be printed by a different printing process simultaneously, if the second printing process is available at that time. If the second event did not provide a significant amount data, the printing process might provide the data for the printer faster than the first printing process, breaking the order. In such case, data from the second event could print before the data from the first event. To ensure FIFO principle also for printing, see section Synchronous Print Mode.