1

我在 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}
};
4

1 回答 1

2

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

每当作业执行保持在IN_PROGRESS状态超过此时间间隔时,作业执行将失败并切换到终端 TIMED_OUT 状态。

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

于 2020-11-26T14:28:48.913 回答