Continuously polling an operational model using Rest API
I have been requested by a client to continuously poll Anaplan Operational Model ( every 1 min) to EXPORT data from a module . Module is relatively small so about 20 rows and 2 cols .
Right of the bat this doesn't sound like a great idea to me due to potential lock up of the model etc. therefore i wrote a Python script to test it out .
Script executes every 1 min and downloads the required data using Rest API. It simulates all the steps that a middle-ware like MULE will go through i.e auth , get id's , run exports , download data etc. for every run .
To my surprise i dont see any degradation or slowness in the model . Also i dont see the Blue pop up which happens due to export or import . Script has been tested and it works confirmed !!!!. Script has been running for a day every min in production model where users would go in and do about their normal day to day stuff. I have confirmed with users and no one noticed or reported any slowness or performance issues .
Question: Is anyone polling operational model with such frequency ? Am i missing anything ?
Personally i dont like this however i dont see any impacts to backup my unlikeness if that makes sense
Re: Continuously polling an operational model using Rest API
Yes, we are doing this in a few of our models.
You're not missing anything, this will work. There are a few cautions though.
To mitigate risk of affecting the user experience, only set something like this up to run against small models where processing time is limited.
To mitigate the risk that these API calls run away and "pile up", make sure that your process (as initiated by the scheduler) is designed to be robust and stop initiating API calls if old API calls are still outstanding:
Don't kick off a new process until the old one is done
Don't kick of processes if any other API call(s) are being made
To mitigate the risk of affecting other models or workspaces, put components with high API traffic into separate models, in separate workspaces; if you crash the workspace due to overloading it with API calls (it's happened), you don't want to affect other models in your workspace