【问题标题】:what is the order in which azure Startup tasks are runazure 启动任务的运行顺序是什么
【发布时间】:2013-02-26 10:28:46
【问题描述】:

我有 3 个启动任务,两个简单(t1,t2)和一个后台任务(t3)。 现在 t1, t2 必须按顺序运行,现在因为 t3 是一个后台任务,它使用了一些由任务 t2 设置的环境变量。

我对后台任务的运行方式有些疑问? 他们是从角色启动开始还是在进入启动任务列表时立即开始运行。

例如。如果我在我的csdef文件中将任务的顺序定义为(t3,t1,t2),t3是否会首先在后台开始运行,然后t1,t2将完成,然后角色启动阶段将开始--->在这种情况下我可能会在设置之前读取环境变量

t3 是后台任务,直到所有简单任务都完成后才会启动,并且会随着角色启动而开始

编辑:发现它们按照出现在csdef中的顺序运行

现在我遇到了另一个问题 我在机器级别的 t2 中设置一些环境变量 在 t3 中,我在进程级别读取它们,有时 t3 能够读取这些变量,但有时它读取空值

一般来说:机器上的所有环境变量是否自动可用于每个进程?

【问题讨论】:

  • 您可能会尝试在每个任务开始时将当前系统时间写入文本文件(时间 /t >> d:\task1.txt)。这可能会为您提供有关任务计划的提示。
  • 好吧,我发现任务是按顺序运行的,不管它是简单的后台任务还是前台任务 :) 所以在上述情况下,t3 将首先在后台开始运行,然后 t1 和 t2 将按照与 t3 并行的顺序运行,所以我的运行任务顺序必须是 t1、t2、t3
  • 也许您应该发布您的发现作为您自己问题的答案...

标签: azure


【解决方案1】:

我发现任务按照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 将按顺序并行运行

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多