In Jive or Astor, I am able to modify polling thread management for a device server. By default, the device server has one polling thread available, and I can add/remove more.
Can the same functionality be accessed by the API (or Python API), I would like to programmatically access these functions without the need to use Jive/Astor. If this isn’t possible, is there a way to do this via the command line as oposed to the GUI?
Up to now, the only way to do it programmatically is to have a process which updates the polling_threads_pool_conf and polling_threads_pool_size admin device properties according to your needs and restarts the device server (this is what Astor is doing).
This is not very convenient and could be error prone. For your use case, the best would be to add new commands in the admin device API to manage the polling threads pool.
In the framework of the transition from Sourceforge to Github, I just created TangoTickets Github repository to be able to create issues on GitHub for cases where the issue has an impact on several Tango git repositories and for Tango general issues. This repository can be used as well to create tickets on Tango related bugs or feature requests when you don’t know where to create the ticket.
We are just getting back to dealing with this issue in our system. Essentially we currently have a device server, with a number of devices. By default it seems there is one polling thread for all these devices.
We would like (at runtime) to modify the polling thread configuration, and say assign one thread to half the devices, and another thread to the other half. You mentioned that it is possible to do this programmatically. Could you explain exactly which steps to take to do this?
I am able to read the property at runtime with the following code:
dp = DeviceProxy("dserver/Tile_DS/test") # proxy of the device server
dp.get_property("polling_threads_pool_conf") # read the property
So if I wanted to say, service devices ‘1’ and ‘2’ with one polling thread, and ‘3’ and ‘4’ with another, without using the Jive tool, how would it be achieved? _
and to update dserver/Tile_DS/test/polling_threads_pool_size property to:
2
I’m a beginner with PyTango so I let you find the way to update these properties (probably using DeviceProxy.put_property method).
Then you should send the Init command on your admin device (dserver/Tile_DS/test in your case).