我目前正在使用用于 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
永远不会到达。
为什么会这样?