Maybe you could use a background callback and disable all other callbacks until the background callback has finished? Not sure if this makes sense, though. In one case I used a background callback to “block” my app with a full screen spinner.
Celery would be a possible approach to achieve what you want. In fact, I would consider that the more proper option. However, it takes a bit more setup in terms of code as well as infrastructure.
EDIT: Using the blocking callback transform, the output of the first callback should be returned on completion. The second callback (and any others invoked while the first is running) are simply discarded. Is that not what you see? If not, that is a bug.
Yes it doesnt send the outputs to the front end.
To be sure of that, I added a simple div to my output list and return it a string that will depend on which group I try to open.
If it was returning the outputs properly, I should see the output of div change twice. However, only the output of the second callback appears.
Writing this I just thought about using long background callback and the blocking callback and send the rows to AG grid using the setprogress function ! I am going to try that
EDIT: unfortunatly blocking callback and long-callback are not compatible, therefore it doesnt work