如何在Azure Webjobs中为NonTriggered方法应用Singleton属性

时间:2018-09-03 12:53:07

标签: azure-webjobs

如果我应用[Singleton]和[NoAutomaticTrigger]属性并发布了Webjob,它将进入待处理的重启状态。

我们要解决方法中发生的多实例问题。

请帮助。

1 个答案:

答案 0 :(得分:0)

  

进入待处理的重启状态。

在您的情况下,您需要检查webjob进入挂起的重启状态的原因。

有很多原因进入挂起的重启状态。可能是由于问题或webjob线程完成需要重启。我们可以使用Webjob日志进行检查。

在将其发布到Azure之前,我们确保其在本地正确运行,并添加具有存储连接字符串的appsetting AzureWebJobsDashboard和AzureWebJobsStorage ,然后我们可以从webjob仪表板获取webjob日志。

如果将其发布为连续类型的webjob,则方法将完全执行。并且状态将变为挂起重启。这是正常行为

[Singleton]和[NoAutomaticTrigger] 属性可以正常工作,请参考以下演示代码。

 static void Main()
 {
    JobHost host = new JobHost();

    host.Call(typeof(Functions).GetMethod("CreateQueueMessage"), new { value = "Hello world!" + Guid.NewGuid() }); 

  }

[Singleton]
[NoAutomaticTrigger]
public static void CreateQueueMessage(TextWriter logger,string value,[Queue("outputqueue")] out string message)
{
    message = value;
    logger.WriteLine("Creating queue message: ", message);
    Console.WriteLine(message);

 }

enter image description here