2016-09-22 2 views
2

개별 cron 작업에 대해 단일 DB 연결 또는 개체를 유지 관리 할 수 ​​있습니까? 스크립트는 PHP로 작성되었습니다.여러 cron 작업에 대해 단일 DB 연결 유지

DB를 삽입/업데이트하기 위해 여러 개의 독립적 인 cron 작업이 실행 중입니다. 그것도 15 분마다 뛰는 것입니다. 최근에 최대 db 연결을 초과했습니다.

DB 연결을 유지 관리하는 서비스가 있습니까? node.js 또는 javacript를 사용하는 것 또는 PHP를 사용하여 connection-pooling을 사용할 수 있습니까?

나는 예상대로 작동하지 않는, 다음

$link = mysqli_connect('p:localhost', 'fake_user', 'my_password', 'my_db'); 

그러나이 같은 PHP를 사용하여 영구 연결을 시도했다. 각 cron 작업은 mysql에 별도의 연결을 생성합니다.

답변

0

PHP에는 연결 풀링 기능이 없지만 "mysql_pconnect"를 사용하여이를 구현할 수 있습니다. 동시에 mysql_pconnect를 사용할 때 매우 조심해야한다. PHP의는 mysql_pconnect에 따르면

:

는 mysql_pconnect()는 두 가지 중요한 차이로 mysql_connect()와 같은 대단히 역할을합니다.

먼저 연결하면이 함수는 이미 동일한 호스트, 사용자 이름 및 암호로 열려있는 (영구적 인) 링크를 찾으려고 시도합니다. 하나가 발견되면 새 연결을 여는 대신 해당 식별자가 반환됩니다.

두 번째로, SQL 서버에 대한 연결은 스크립트의 실행이 끝나도 닫히지 않습니다. 그 대신, 링크는 향후 사용을 위해 열려 있습니다 (mysql_close()는 mysql_pconnect()에 의해 설정된 링크를 닫지 않습니다).

따라서이 유형의 링크는 '영구적'이라고합니다.

더 많은 정보를 원하시면 클릭 here

당신은 30 초 또는 1 분 이상 모든 DB 연결을 종료해야 할 또 하나의 일을 할 수 있으며,이 크론 자체를 통해 수행 할 수 있습니다.

둘째, cron 스크립트에서 단일 연결을 열고 스크립트 실행 후 마지막에 닫아야합니다.