I dont believe that there is a way to reset the cache based on an event, or for a particular data source.
Here are the options, I know of
1. Restart Tableau, and clear the cache at that point. By running
2. On individual views, you can refresh the data (ie drop the cache, and query the underlying data source), by clicking on the refresh button, or by adding ?:refresh=yes to the view URL.
The URL refresh option could be automated using the tabcmd get command, and scheduling using task scheduler, which goes some way to resolving your issue.
Hope this helps
Thanks Glen Robinson
This is helpful... Option 1 will need to restart the server which is not acceptable. Option 2 seems to be a workaround and can be used if there is no direct way of doing this. But I believe we need to download atleast 1 type of file(pdf/image) for the view to use this command. And let's say if we schedule to run this every 15 mins then so many times the files will get download and imagine if we do it for every view. This will also consumes network bandwidth while downloading and will create load on the server if we have 500 such view running every 15 min.
Is there a way to refresh without downloading the file.
I have looked at this before, and as far as I can see, it does what it says. Running the command will flush the Redis cache (cache server)
The issue though, I think, is that each of the VizQLServer processes also have their own internal cache as well.
This means that you could / will get inconsistent results by flushing the shared cache, and not flushing the VizQL process cache.
(The only way I know of flushing each VizQL process cache is to kill / restart the process, which is a little heavy-handed IMHO)
Please explain why you need to do this as it doesn't make sense and defeats the speed improvements a cache brings.
If you dont want to download the image, then you could try using the REST API to query View Image
I think that you will be able to query the View without having to download the end result
Hope this helps