API call to determine if a model is currently busy

As a data integration owner, I want to be able to check if a model is locked/busy running a process before I initiate a new process, so that I can avoid running excessive processes and have smoother orchestration between my calls.

 

I'll know this is successful when there is an API call when I can submit a model guid and get an immediate response back telling me if the model is available or busy.

 

A current workaround is to send any call to a model (e.g. a simple metadata request) and see if I get an immediate response back, which would indicate the model is available. However, if the model is busy, I will not get a response back as the request gets queued behind the active process and eventually time out if the process is running for a long time.

16
16 votes

New · Last Updated

Comments

  • Hello Ryan,

    We have designed a custom api and we schedule a lot of flows. We have many data hubs and many deployed models. We are currently facing difficulty to improve our data flows. Because as you know in order for a flow to work source & target model must not be busy.

    Have you found a more efficient way than querying the model and seeing if you get an immediate response with a simple query?

  • Something you can do is maintain a repository (in a database, for example) with the task IDs of all the API calls you are making across all models. Your script will be still be responsible for the API calls to check task status, but once you get the status returned, you update that status back into the database. At any given point, you can query your database to see if there are any open, uncompleted tasks outstanding for a model.

     

    This approach would be less beneficial if you also have end users running many locking imports within a model, since you would not have a record of those tasks in your database.

Get Started with Idea Exchange


See our Submission Guidelines and Idea Evaluation Criteria, then start posting your own ideas and showing support for others!