计划的Azure WebJob但未调用NoAutomaticTrigger-Method

时间:2014-06-30 09:20:18

标签: c# azure azure-webjobs

这个问题与此问题有关:Running Azure WebJob without queue

我的场景:我只想每小时将一个文件写入blob存储,并且不需要任何队列系统。从前一个问题我得到了这个代码 - 它第一次被触发时工作正常:

    [NoAutomaticTrigger]
    public static void DoWork([Blob("container/foobar.txt")] TextWriter writer)
    {
        writer.Write("Hello World " + DateTime.Now.ToShortTimeString())"
    }

    static void Main()
    {
        JobHost host = new JobHost();
        host.Call(typeof(Program).GetMethod("DoWork"));

        host.RunAndBlock();
    }

网站正在运行" AlwaysOn = true"而webjob是" Running"所有的时间,但现在调度程序抛出以下错误 - 没有任何反应: "由于作业已在运行,因此无法启动新的运行。"

目前的结果是文件只写了一次。如果我切换" AlwaysOn"假它"工作",但它似乎很脏,因为没有总是在工作结果是" Aborted"。

1 个答案:

答案 0 :(得分:17)

标记为“按需”的作业必须完成。在您的情况下,问题是最后的RunAndBlock调用。如果您调用该方法,控制台应用程序永远不会停止(这就是作业“已经在运行”的原因),因为RunAndBlock基本上是while(true)循环。

RunAndBlock只能用于连续工作。