我有3个启动任务,两个简单(t1,t2)和一个后台任务(t3)。 现在t1,t2必须按顺序运行,现在t3是后台任务,它使用由任务t2设置的一些环境变量。
我对后台任务如何运行有疑问? 他们从角色启动开始,或者一旦他们进入启动任务列表就开始运行。
离。如果我在我的csdef文件中将任务的顺序定义为(t3,t1,t2),t3将首先开始在后台运行,然后t1,t2将完成,然后角色启动阶段将开始--->在这种情况下,我可以在设置之前读取环境变量
或
作为后台任务的t3将无法启动,直到所有简单任务完成,并将从角色启动开始
编辑:发现它们按顺序运行,因为它们出现在csdef
中现在我遇到了另一个问题 我在机器级别的t2中设置了一些环境变量 在t3我正在进程级读取它们,有时t3能够读取这些变量但有时它会读取空值
一般情况:机器上的所有环境变量是否都可自动用于每个进程?
答案 0 :(得分:0)
我发现任务按照在csdef中定义的顺序运行
如果您在我的csdef中以相同的顺序定义了以下任务
<Task commandLine="t1" executionContext="elevated" taskType="simple" />
<Task commandLine="t2" executionContext="elevated" taskType="simple" />
<Task commandLine="t3" executionContext="elevated" taskType="background"></Task>
所以首先t1将执行,t1完成t2后和t2完成后t3将在后台运行,角色启动阶段将并行启动
如果我将订单更改为
<Task commandLine="t3" executionContext="elevated" taskType="background"></Task>
<Task commandLine="t1" executionContext="elevated" taskType="simple" />
<Task commandLine="t2" executionContext="elevated" taskType="simple" />
然后t3将在后台运行,t1和t2将并行运行但按顺序