2012-06-20 2 views
2

나는이 방법으로 혜성 실행 내가 다른 모든 HTTP 요청을 보류 볼 수 있습니다PHP 혜성은 apache mpm을 차단합니까?

$items = $statement->fetchAll();//statement is a PDO Statement 
$iteration = 0; 
while(count($items) == 0 && $iteration < 100){ 
    $items = $statement->fetchAll(); 
    usleep(10000); 
    ++$iteration; 
} 

에서 while 루프를 실행이 혜성을했습니다. 데이터베이스가 아닌 요청도 보류 중입니다. 왜 ?

+0

http://www.php.net/manual/de/pdo.commit.php 내가 donno 수 있습니다. postgresql은 동일한 연결을 통해 호출되는 모든 parallal quries를 직렬화합니다. 영구 연결을 사용하고 있습니다. 그래서 모든 쿼리에 동일한 연결이 재사용되고 있습니다. –

답변

1

요청이 트랜잭션에서 보류 중이므로 PDO::commit을 사용하여 수동으로 커밋해야합니다.

이 문제에 대해 문서를 참조하십시오

http://www.php.net/manual/en/pdo.transactions.php

+0

'select' 연산이 수행되는'comet' 코드로 커밋 할 필요가 있습니까? –

+0

혜성이 커밋을 수행하는 선택 쿼리를 수행 중입니다. 활성 트랜잭션이 없음을보고합니다. –