2012-07-16 3 views
0

나는 10 번 실행해야하는 기능이 my_function()입니다. 현재 10 개의 모든 기능이 동시에 (비동기식으로) 실행 중입니다. 이전 함수가 완료된 후에 함수의 다음 실행이 어떻게 발생할 수 있습니까?이전 기능 실행 후 기능 실행

my_functionCURL 데이터베이스 테이블에 대한 호출 및 읽기/쓰기를 포함합니다. 이 중 카운터 검사와 함께, 당신은 while 루프를 사용하여 인수 내에서 함수를 호출 할 수있는 비동기

$repetitions = 10; 

for($i = 0; $i < $repetitions; $i++) { 
    my_function($param); 
} 
+0

왜 비동기식으로 실행한다고 생각합니까? –

+0

함수는 먼저 테이블에서 CURL을 통해 방문하지 않은 행을 찾아 URL을 가져와 CURL에 넣은 다음 해당 행의 열을 * visited *로 업데이트합니다. 그러나 내가 원래 게시물에 표시된대로 그것을 수행하면 동일한 행이 10 번 읽습니다. 이것은 CURL이 * 방문하지 않은 상태 *가 방문한 * 상태로 업데이트 될 수 있기 전에 CURL이 10 번 실행되었음을 의미합니다. – Nyxynyx

+0

함수가 비동기로 실행되고있는 것처럼 보입니다. 함수 자체가 실제로 원자 적으로 작성 되었습니까? – ernie

답변

0

를 실행하는 경우 궁금하다. 처리 할 때 함수가 true 또는 false를 반환하는지 확인하십시오.

$repetitions = 10; 
$count = 0; 

while (my_function($param) && $count < $repetitions) { 
    $count++; 
} 

함수가 true를 반환하고 계산 기준이 true를 반환하지 않을 때까지 루프가 중단되어야합니다.

+0

컬 컬링 호출 async를 수행하고 확인 컬 호출이 완료 될 때까지 true를 리턴하지 마십시오. –