Perspective polling not working consistently?

I have a view where I let a user select his own filter settings with 5 drop downs. On the value change to the drop down, we write to our users table the value of the drop down into a column.

Now, also on the drop downs, we have custom properties that are named SQL queries to the users table to see what the last filter selected was, polling every 5 seconds (or it’s supposed to). When all the filter values on screen are matched with what we see in the database, we turn on the visibility for some text that says filter saved.

Now it appears to work once or twice, but then the polling stops, so we never get the “filters saved” text to appear. We have some debugging labels on screen the current drop down value / what the custom property last read from the database and we can see that eventually the custom property just stops reading from the database. This was confirmed by putting a change value script on the custom property to just print every time it polled, and it seems like a crap shoot as to which one will keep on polling while the rest seem to turn off.

Is polling via component custom properties something that’s a known issue with Perspective? Anyone else issues with this? We are trying to come up with a work around but it seems like with something as fundamental as polling is, it should just work/we shouldn’t have to do this.

One thing I just thought of too - does Ignition try to cache db results/be clever? I wonder if the polling turns off because it got the last value, and thinks it doesn’t actually have to requery the database but instead is using a cached result or something.

This doesn’t fully address your post, but if you’re looking for a workaround, one way to go about it is calling your table component’s refreshBinding() method on its props.data. In one of our projects, we have a property that evaluates to true every 5 seconds, and then a change script that fires off the refreshBinding() binding call when that new value is true.

Not sure if this can help, but by using the Named Queries, you can bypass the cache, forcing the web browser to reload every time. (See below)

1 Like