Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
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,

Did you ever find a solution to you dependent task problem ? I'm facing an almost identical scenario.

Rgds,

Nik

Not applicable

Please try this and let me know if it works:

In the qvw, which is scheduled after the qvds are refreshed, add this line to the start of the script:

if (qvdcreatetime (qvdpath) = today(),

the entire script

else

exit script

Idea is to check if the last qvd has refreshed, before starting the refresh of the qvw application.

Thanks,

Robinson

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author


nikidaley wrote:

Did you ever find a solution to you dependent task problem ? I'm facing an almost identical scenario.


I have not found a satisfactory solution other than having long task chains.

-Rob

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author


Robinson wrote:
Please try this and let me know if it works:
In the qvw, which is scheduled after the qvds are refreshed, add this line to the start of the script:
if (qvdcreatetime (qvdpath) = today(),


Thanks for the suggestion. I don't think it's quite what I'm looking for. I'm not try to prevent execution at the wrong time, I'm trying to execute at the right time.

-Rob

Anonymous
Not applicable

Rob,

We went round and round with trying to do this in publisher. We ended up abondoning triggered tasks and creating an external program that executed each task via EDX call. Then you can monitor the task for completion.

Hopefully Version 10 will have some of this functionality back.

JS

Not applicable

Hi JS,

Could you elaborate please on how you monitor for the task completion from your external program ?

Rgds

Nik

Not applicable

Hi,

You can have an external command that deletes some flag files "del folder\flag*.qvd"

"On successful execution" of this external command will fire the 20 reloads. Each will store a QVD file, and in the very end create a flag file flag_1.qvd with one row (content does not matter).

One of the parallel will trigger on sucesful execution the main reload. This will count how many flag files there are, sleep and retry until there are enough. You do this a fixed amount of time, so there is no infinite loop.

for i= 1 to 10

set cnt=0;

for each x in filelist('folder\flag*.qvd')

set cnt = cnt + 1;

next

if cnt < 20

sleep 1000 * 60 * 10; //10 minutes?

//else

//is there a short circuit "break" statement to quit the loop?

end if

next

-Alex



Not applicable

Rob,

Did you ever get a resolution for your post about running app reloads after all 20 QVDs reloaded ? I am facing the same thing. We are on 8.5 and are moving to 9 but we have to rebuild our entire scheduling process because of this exact same thing....

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP
Author


pshicks wrote:Did you ever get a resolution for your post about running app reloads after all 20 QVDs reloaded ? I am facing the same thing. We are on 8.5 and are moving to 9 but we have to rebuild our entire scheduling process because of this exact same thing....


No, I have not come up with a satisfactory solution. I'm stil running long task chains.

-Rob

Not applicable

I don't know if this works in 8.5, but i have used for 10 months in V9 and i guess it could be changed, so it would look at more than only one file.

What i have been using this script for, is to check that all the calculations has finished in MS Dynamics. It check for a file every minute for 6 hours. This can be changed in the script.

This is the only reasonable solution I have been able to come up with. It needs some kind of checkfiles and you need a process to remove alle the checkfiles, when the load has started (so you are ready for the next day). However, it is easy to create a simple .bat-file and start this via "EXECUTE" in the script.

/Martin