Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

Tricks for scheduling dependent tasks

I'm looking for tips on scheduling large dependent task chains. In QVP 8.5, we had document sets which handled the problem nicely. But document sets are not available in V9.

Here's the scenario. I have a group of 20 QVD reloads that need to execute first followed by the application reloads. The application reloads should not start unitil all QVD reloads are completed. The only way I can ensure all QVD reloads are complete is to run them serially and chain the application reloads off the last QVD.

What I would like to do is run the QVDs in parallel and start the applications when all QVDs are complete. Any ideas on how to do this wihtout just having a single task chain for all QVDs?

I''m facing this problem on both SBE edition and Publisher Enterprise.

Thanks,
-Rob

23 Replies
Not applicable

Hi Rob,

What about having a dependency on the QVW reload, that only start on success of the QVD reloads ?

vgutkovsky
Master II
Master II

Hi, Rob. Really interesting question. I'm not 100% sure, just throwing some ideas out there. Assuming you have a server with enough cores and memory, you can schedule up to 10 QVBs at the same time. So you could have the following structure: (i) schedule the first 10 QVD reloads to run at the same time, (ii) schedule the second 10 QVD reloads to run when #10 (or whichever is the longest) is completed; (iii) schedule the application reloads to start when #20 (or whichever is the longest in the second group) is completed. This would allow you to maximize parallel processing of the tasks.

Does this help?

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

Hi Glad,

Thanks for the response. I don't think it will give me the required certainty. The applicaton reloads would run even if #15 -- somewhere in the middle of the pack -- had failed or not completed.

-Rob

vgutkovsky
Master II
Master II

Ah, well to solve that you would use a combination of triggers and dependecies. The triggers would be set up as described above. Then you would make the applications dependent on tasks 1 - 20. This would ensure that they would only run if all QVDs reloaded successfully. Alternatively, if a certain application is dependent on less than all the QVDs, you could make fewer dependencies. This might be a little annoying to set up for each application, but it would give you the certainty you are looking for.

Cheers,

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author

I haven't found the Dependencies feature useful, perhaps I am misunderstanding it's application. A dependency seems to be satisified if the dependent task is in any state but "Failed". Therefore the dependent task runs if the dependency ran sucessfully in the past, or even if it never ran. I need some way to say "the dependency must have run today". Can I do that with dependencies?

-Rob

vgutkovsky
Master II
Master II

Rob,

You're mostly correct. Dependencies will be satisfied if the last execution ran successfully. But by scheduling the QVD loads to run before the application loads you will ensure that the tasks will be started first and the last task state will be the most recent (today).

mike_garcia
Luminary Alumni
Luminary Alumni

Ok, here's an idea. Not tested really.

Make each of the 20 taks generate a txt file or write something somewhere. For Example Task A, at the end of the script, will write a txt File that says "Hey I already did my job", a counter of some sort.

That, in turn, (also at the end of the script) will execute a vbs that checks if the tasks have all done their job (count the number of files or something). If so, it will trigger an EDX for the final reload, if not it will wait for the next finished task to call it and check again.

OR, maybe you could read the task result logs, and apply the same logic.

Hope this helps. And please, let us know if it worked.

Mike.

Miguel García
Qlik Expert, Author and Trainer
pablolabbe
Luminary Alumni
Luminary Alumni

What Qliktech has to say about this feature change ?

How it´s possible to migrate from one version to another when the newer version have missing features ?

suniljain
Master
Master

Dear Rob,

One way to do this is make .bat file and write all task one by one in that batch file according to requirement.

Make QVW Application for QVD and then QVW.

Regards

Sunil Jain.