//If there is a task running and the action!=continue, //we stop to avoid multiple task instance being ran at same time. exit; } if (($taskID = isTaskRunning($conn)) == 0) { //if no task is running, create a new one. $taskID = createTask($conn, count($users)); } if ($taskID != 0) { for ($i = getTaskUserCountProgress($conn, $taskID); $i < count($users); $i++) { //If time elapsed is more than 15 seconds, rerun the script to bypass PHP timeout if (time() - $startTime > 15) { asyncExecuteScript('update_user_stats.php?action=continue'); exit('Script continuing on another process.'); } updateTaskProgress($conn, $taskID, $users[$i]['id']); $newUserStats = fetchUserStatsFromKid($users[$i]['invite_url']); updateUserStats($conn, $users[$i]['username'], explode(';', $newUserStats)[0], explode(';', $newUserStats)[1]); } setTaskFinished($conn, $taskID, -1); exit('Update finished.'); } else { exit('error : Couldn\'t create task in database.'); } } } else { exit('error : Couldn\'t connect to database.'); } /** * The reason why we don't want sorting is because the script calls itself after having updated a few * users. This can change the index order.
$task_is_complete = isset($task_is_complete) ? $task_is_complete : $_GET['task_is_complete']; $task_date_completed = isset($task_date_completed) ? $task_date_completed : $_GET['task_date_completed']; $module_progress = isset($module_progress) ? $module_progress : $_GET['module_progress']; $module_is_complete = isset($module_is_complete) ? $module_is_complete : $_GET['module_is_complete']; $module_date_completed = isset($module_date_completed) ? $module_date_completed : $_GET['module_date_completed']; if ($step_action == "record") { $step_updated = recordStepProgress($step_id, $user_id, $step_is_complete, $step_date_completed); $message = "Tep has been recorded successfully"; } else { if ($step_action == "remove") { $step_updated = removeStepProgress($step_id, $user_id); $message = "Tep has been removed successfully"; } } if ($step_updated) { $task_updated = updateTaskProgress($task_id, $user_id, $task_progress, $task_is_complete, $task_date_completed); if ($task_updated) { $module_updated = updateModuleProgress($module_id, $user_id, $module_progress, $module_is_complete, $module_date_completed); if ($module_updated) { $response = '{"status": "ok", "message": "' . $message . '"}'; } else { $response = '{"status": "error", "message": "The module progress could not be updated. Please try again later."}'; } } else { $response = '{"status": "error", "message": "The task progress could not be updated. Please try again later."}'; } } else { $response = '{"status": "error", "message": "The step progress could not be recorded. Please try again later."}'; } } else { if ($module_id) {