php 비동기화 처리

php 비동기화 처리

QA

php 비동기화 처리

본문

저희 회사가 솔루션 업체다보니 비동기 처리 할곳이 은근 많더라구요.

현재는 사이트 방문에 따라 처리를 하고있는데 혹여 서버도움없이(호스팅 사용자 때문에) php 자체적으로 비동기 처리 방법이나 방법론 같은게 있을지요?

이 질문에 댓글 쓰기 :

답변 3

어떤 비동기 작업을 원하시는지 모르겠으나,

php로 비동기 작업하시려면, react 라이브러리가 있습니다.

jquery처럼 on 이벤트로 콜백함수에서 받아서 비동기처리(동시 다운로드등..) 가능합니다.

 

https://github.com/reactphp/react

 



위에서 제가 언급한 "서버설치용"이라는 뜻이 다르게 표현 됬어야 했는데 정정합니다.
우선 저희 솔루션의 베이스 php버전은 5.2입니다.

또한 솔루션이기 때문에 호스팅 사용자를 고려 해야 하구요.
대부분 컴포져는 서버에 컴포져를 설치 후 라이브러리를 다운로드 하여 오토로드를 통하여 사용하는 방식입니다.
문론 PC에서 컴포져를 땡긴다음 올려서 수동으로 로드 한다음 사용 할수는 있지만 보통 컴포져로 받는 라이브러리의 특징이 php 5.3 ~으로 알고 있습니다.

실제 적으로 알려주신 php 리액트의 경우도 php 5.4부터 동작 되도록 패키지스트에 기록 되어잇습니다.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
네임 스페이스도 안되고 쓸만하다 한건 모조리 php 5.4 부터 지원하고 ㅠ.ㅠ;

방법이 없는것은 알고 있는데 그래도 혹시나 하고 남긴글입니다. ㅠ.ㅠ

더이상 답변이 없을듯 하여 귀한 시간 내주시어 긴글을 작성 해주신   님께 감사의 인사말과 함께 채택을 드립니다.

다시한번 감사합니다.

비동기 ajax를 말하시는 거라면

ajax는 언어에 상관없이 가능합니다.


set_time_limit(0);
while(ob_get_level()) ob_end_clean();
header('Connection: close');
ignore_user_abort();
ob_start();
for($i=0; $i<50; $i++) {
 프로세스 처리
$size = ob_get_length();
header('Content-Length: '.$size);
ob_end_flush();
flush(); 

 

예전에 위소스로 건의 했다가 거절 당한적이 있어서 ㅎㅎㅎ

다른 방법이 있나 하구 올려봅니다.

일단 브라우저에 결과를 보여 줄필요가 없다는 가정으로 작업 했던 소스입니다.

예를 들어 만명에게 메일 발송 같은 것이죠

크론잡을 쓸수 없는 상태라 울며 겨자먹기로 저렇게 작업했었습니다

제시용으로 짠거라(작동은됩니다) 불안 하기도 하고 말씀 처럼 비동기가 아니라 백그라운드 처리이기에 문제가 생길 가능 성이 크죠.

mq 쪽을 처음에 염두 하긴 했으나 역시 호스팅 고객때문에... ㅠ.ㅠ

php단독으로는 방법이 없는걸로 ㅎㅎㅎ

답변을 작성하시기 전에 로그인 해주세요.
전체 22
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT