Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
Hi Rob,
Did you ever find a solution to you dependent task problem ? I'm facing an almost identical scenario.
Rgds,
Nik
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
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
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
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
Hi JS,
Could you elaborate please on how you monitor for the task completion from your external program ?
Rgds
Nik
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
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....
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
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