【问题标题】:Windows Azure Mobiles Services scheduler execution timeoutWindows Azure 移动服务调度程序执行超时
【发布时间】:2013-10-02 16:23:43
【问题描述】:

我在 Windows Azure 中使用移动服务。我使用可用于移动服务的新调度程序。我称为 SendOut 的调度程序。

我正在运行一个非常简单的脚本,它将向队列中插入一条消息。整个脚本:

function SendOut() {
    var azure = require('azure');
    var queueService = azure.createQueueService("mailsoutscheduler", "[The key to the storage]");
    queueService.createQueueIfNotExists("mailsout", function(error){ });
    queueService.createMessage("mailsout", "SendOut", function(error){});
}

当我尝试运行一次脚本时它工作正常。它计划每 5 分钟运行一次。它通常很顺利。但是有时我会收到此错误:

发生未处理的异常。错误:您的脚本之一导致 服务变得无响应并重新启动服务。这是 通常由执行无限循环或长时间的脚本引起, 阻塞操作。脚本后服务重启 连续执行超过 1000 毫秒。 在 EventEmitter。 (C:\DWASFiles\Sites\VogSendOut\VirtualDirectory0\site\wwwroot\runtime\server.js:84:17) 在 EventEmitter.emit (events.js:88:20)

我无法弄清楚为什么会出现此错误 - 或如何解决它。

可能是因为它在免费移动服务层中运行?

【问题讨论】:

  • 我也看到了这个问题。在过去 10 天左右的时间里,我看到了其他关于此的报道。也许这是最近引入的问题。

标签: node.js azure scheduler azure-mobile-services


【解决方案1】:

我认为这不是免费移动订阅的原因。

尝试添加一个 尝试{} 捕获{}块

如果发生错误,请使用 console.log() 记录。它可以帮助您解决问题。

【讨论】:

  • 我已经添加了一些日志记录,现在已将其扩展为完整的 try-catch 块。似乎这是我得到错误的地方: var azure = require('azure');
  • 我在函数周围添加了一个 try-catch 块。我仍然得到最初问题中描述的未处理异常。所以 try-catch 块没有捕获错误,因为我在日志中看不到任何条目(我将错误打印到日志中)。所以看起来它仍然是 require('azure');这给出了问题。有什么想法吗?
  • 一个建议,你确定这个错误是由这个特定的脚本引发的吗?我已经遇到过这个类似的错误,但我怀疑是错误的脚本......所以我的建议如下:在调度程序中创建一个只有这个脚本的新移动服务,没有别的。并等待查看错误是否继续。如果没有,您必须检查所有脚本以确保捕获任何错误,否则阻止或捕获并且始终发送对请求的响应
  • 它是由特定脚本抛出的,因为这已经是移动服务调度程序中唯一的脚本。我已经在整个脚本周围有一个 try-catch 块。所以我觉得有点奇怪我没有捕捉到异常
猜你喜欢
  • 2014-05-26
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 2015-02-26
  • 2014-06-23
相关资源
最近更新 更多