微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用超时配置创建的AWS IoT Core作业-但不超时

如何解决使用超时配置创建的AWS IoT Core作业-但不超时

我正在Lambda函数(.net core 2.1)中运行C#代码,并为仅偶尔连接到Internet的IoT事物创建作业。由于我想立即执行命令(在事物再次脱机之前),因此我为每个命令创建快照作业(目标是单个IoT事物)。我定义了5分钟的超时配置。 我的问题是,作业长时间停留在“排队”状态,而实际上我希望它们在5分钟后超时。

用于创建JobRequest的代码

var createJobRequest = new CreateJobRequest
{
    Targets = myArn,JobId = myJobId,TargetSelection = TargetSelection.SNAPSHOT,TimeoutConfig = new TimeoutConfig { InProgresstimeoutInMinutes = 5}
};

解决方法

有同样的问题。如documentation inProgressTimeoutInMinutes中所述,设备必须完成作业执行的时间(以分钟为单位)。

只要作业执行在 IN_PROGRESS 状态下停留的时间超过此时间间隔,作业执行就会失败并切换到终端TIMED_OUT状态。

当您以排队状态编写作业执行时。但是,如文档中所述,这是作业执行保持IN_PROGRESS状态而不是“排队”状态的时间间隔。因此,您的设备(或代表该设备的应用程序)必须运行作业,即将执行状态从“已排队”移到“正在处理”。然后,如果无法处理该作业(例如挂起),则在inProgressTimeoutInMinutes之后,AWS将终止该作业。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。