Thread Pools and Missing Documentation

Is there anywhere in the Ignition documentation that details what sets of tasks are executed in which thread pools? Additionally, is there anywhere that details all of the options inside the Dignition set of additional parameters for the ignition.conf file. I have seen a number of forum posts that mention setting specific options, but nowhere that breaks down what all of the options are. I know there are probably a lot of options, but having a list would still be helpful.

1 Like

Neither of these things are documented anywhere central.

There are many thread pools and how they are used and what’s executed on them is an implementation detail that I don’t feel is relevant in most cases to most users.

We have discussed the idea of doing a big search for all the system properties and documenting them, though. It might be worth revisiting.

I think that would be a really useful feature. In our experience, knowing what properties exist would be very helpful for setting up, for example, a gateway with a large amount of tag change events.

It is relevant to some users at least. Like when processing a tag trigger, I only recently found out that the tag subscriptions have a limited number of threads available, and every time you run code on the tag change script, it uses such a thread.

That means that two tag triggers can run in parallel, but also if your trigger scripts take too long, block all other tag updates. That is important knowledge to me.

I’d also like better descriptions on some instances where you can choose between “dedicated” and “shared” threads (like gateway timers, tag triggers or messages). How dedicated are those: is it dedicated to that piece of code, or does it get a new thread every time it’s triggered? And how shared are those: is it shared with all timer and tag trigger scripts, or even with other code?

Sometimes, the reason to run code on the server is to ensure it’s synchronised, but you also don’t want to block core Ignition features…