2017-08-09 35 views
2

我正在阅读API文档,其中有一个名为StopExecution的操作。当我在AWS Step Functions中停止并执行时会发生什么?

https://docs.aws.amazon.com/step-functions/latest/apireference/API_StopExecution.html

我不知道它做什么。是的,当然,它会停止执行,但如果某个任务正在运行会怎样?它发送信号来阻止像SWF这样的任务吗?或者只是撤消TaskToken(这样任务不能发回结果)并让它​​运行?如果任务是lambda函数,会发生同样的情况吗?

我在想这个,因为我有一些长时间运行的任务,并且无法在任何地方找到这种行为。

我的猜测是:它只是表示执行停止并且使任务继续运行。当任务调用SendTaskSuccess时,它只会收到像InvalidToken一样的错误。

+0

我也想知道这个问题的答案。如果您发现答案,请更新。谢谢。 – EthanTowne

回答

1

我做了测试,结果证明SFN完全没有办法阻止正在运行的任务。但是,如果尝试在停止执行时发送TaskTaskHeartbeat,它将引发TaskTimedOut错误。

我最终做的是验证SendTaskHeartbeat的输出,捕获TaskTimedOut并在工作端执行任务取消。

注意:SendTaskSuccess/SendTaskFailure发生同样的TaskTimedOut错误。

+0

嗨,非常有趣。我发布了一个关于你可能知道的步骤函数的问题。感谢任何帮助。 https://stackoverflow.com/questions/48631220/aws-step-functions-with-multiple-executions – VAAA

相关问题