繁体   English   中英

AWS简单工作流程-responseDecisionTaskCompleted不起作用?

[英]AWS Simple Workflow - respondDecisionTaskCompleted Not Working?

我目前正在使用SWF的PHP SDK。 我成功使用以下命令完成了决策任务:

$result = $client->pollForDecisionTask(array(
    "domain" => "test",
    "taskList" => array(
        "name" => "mainTaskList"
    ),
    "identify" => "default",
    "maximumPageSize" => 50,
    "reverseOrder" => true
));

$activity_type_version = "1.0";

$task_token = $result["taskToken"];
$run_id = $result["workflowExecution"]["runId"];
$last_event = $result["events"][0]["eventId"];

if($last_event == "3"){
    $activity_type_name = "SlamStart";
}

然后,我尝试使用以下命令注册完成的决策任务:

$result = $client->respondDecisionTaskCompleted(array(
    "taskToken" => $task_token,
    "decisions" => array(
        "decisionType" => "ScheduleActivityTask",
        "scheduleActivityTaskDecisionAttributes" => array(
            "activityType" => array(
                "name" => $activity_type_name,
                "version" => $activity_type_version
            ),
            "activityId" => "1",
            "control" => "something",
            "scheduleToCloseTimeout" => "300",
            "scheduleToStartTimeout" => "300",
            "startToCloseTimeout" => "300",
            "heartbeatTimeout" => "300",
            "taskList" => array(
                "name" => "mainTaskList"
            ),
            "input" => "test input"
        )
    )
));

echo "respondDecisionTaskCompleted call went through";

上面的内容永远不会通过,并且永远不会到达带有echo的最后一行。

为什么会这样呢?

decisions属性将一个数组包装在另一个数组中。 代替

"decisions" => array(
    "decisionType" => "ScheduleActivityTask",
    "scheduleActivityTaskDecisionAttributes" => array(
        "activityType" => array(
            "name" => $activity_type_name,
            "version" => $activity_type_version
        ),
        "activityId" => "1",
        "control" => "something",
        "scheduleToCloseTimeout" => "300",
        "scheduleToStartTimeout" => "300",
        "startToCloseTimeout" => "300",
        "heartbeatTimeout" => "300",
        "taskList" => array(
            "name" => "mainTaskList"
        ),
        "input" => "test input"
    )
)

不得不将其更改为:

"decisions" => array(
    array(
        "decisionType" => "ScheduleActivityTask",
        "scheduleActivityTaskDecisionAttributes" => array(
            "activityType" => array(
                "name" => $activity_type_name,
                "version" => $activity_type_version
            ),
            "activityId" => "1",
            "control" => "something",
            "scheduleToCloseTimeout" => "300",
            "scheduleToStartTimeout" => "300",
            "startToCloseTimeout" => "300",
            "heartbeatTimeout" => "300",
            "taskList" => array(
                "name" => "mainTaskList"
            ),
            "input" => "test input"
        )
    )
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM