使用超时配置创建的 AWS IoT Core 作业 - 但不会超时
AWS IoT Core jobs created with Timeout configuration - but do not time out
我是 运行 lambda 函数 (.net core 2.1) 中的 C# 代码,并为偶尔连接到互联网的 IoT 事物创建工作。因为我想立即执行命令(在它再次下线之前),我正在为每个命令创建一个快照作业(目标是单个 IoT 事物)。我定义了 5 分钟的超时配置。
我的问题是作业长时间处于“排队”状态,而实际上我预计它们会在 5 分钟后超时。
创建 JobRequest 的代码:
var createJobRequest = new CreateJobRequest
{
Targets = myArn,
JobId = myJobId,
TargetSelection = TargetSelection.SNAPSHOT,
TimeoutConfig = new TimeoutConfig { InProgressTimeoutInMinutes = 5}
};
遇到同样的问题。如 documentation 中所述,inProgressTimeoutInMinutes 是设备必须完成作业执行的时间量(以分钟为单位)。
Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal TIMED_OUT status.
当您在排队状态下编写作业执行时。但如文档中所述,这是作业执行保持在 IN_PROGRESS 状态而不是排队状态的时间间隔。因此您的设备(或代表该设备的应用程序)必须 运行 作业,即将执行状态从 Queued 移动到 In_progress。然后,如果它无法处理作业(例如挂起),在 inProgressTimeoutInMinutes 之后,AWS 将终止作业。
我是 运行 lambda 函数 (.net core 2.1) 中的 C# 代码,并为偶尔连接到互联网的 IoT 事物创建工作。因为我想立即执行命令(在它再次下线之前),我正在为每个命令创建一个快照作业(目标是单个 IoT 事物)。我定义了 5 分钟的超时配置。 我的问题是作业长时间处于“排队”状态,而实际上我预计它们会在 5 分钟后超时。
创建 JobRequest 的代码:
var createJobRequest = new CreateJobRequest
{
Targets = myArn,
JobId = myJobId,
TargetSelection = TargetSelection.SNAPSHOT,
TimeoutConfig = new TimeoutConfig { InProgressTimeoutInMinutes = 5}
};
遇到同样的问题。如 documentation 中所述,inProgressTimeoutInMinutes 是设备必须完成作业执行的时间量(以分钟为单位)。
Whenever a job execution remains in the IN_PROGRESS status for longer than this interval, the job execution will fail and switch to the terminal TIMED_OUT status.
当您在排队状态下编写作业执行时。但如文档中所述,这是作业执行保持在 IN_PROGRESS 状态而不是排队状态的时间间隔。因此您的设备(或代表该设备的应用程序)必须 运行 作业,即将执行状态从 Queued 移动到 In_progress。然后,如果它无法处理作业(例如挂起),在 inProgressTimeoutInMinutes 之后,AWS 将终止作业。