CI 묻고 답하기

제목 email - > send 비동기식 질문입니다.
카테고리 CI 2, 3
글쓴이 질문학생 작성시각 2019/03/13 15:01:40
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 17797   RSS

안녕하세요

 

email 가는데 20초가량 걸려서 미리  메일보냈다고 팝업창 뜬 후 메인으로 보낼려고합니다.

 

https://www.cikorea.net/bbs/view/qna?idx=9723

도 찾아보고 거기에 있는 ajax 로 처리를 해봤는데요.

제가 잘못하는건지 잘안돼서요.

 

 

현재방식

 

$this->load->library('curl');

$this->curl->create('email.contoller.php');

$this->curl->ssl();

$this->curl->options(array(CURLOPT_BUFFERSIZE => 10, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 30));

$this->curl->post($attr);

$send_mail_rtn = $this->curl->execute();

 

 

email.contoller.php 내부는

 

$config['mailtype'] = 'html';

$this->email->initialize($config);

$this->email->from($attr['from'], $attr['site']);

$this->email->to($attr['to']);

$this->email->subject($attr['subject']);

$this->email->message($attr['msg']);

$rtn = $this->email->send();

 

이런식으로 처리합니다 .

 

 

$this->curl->execute();

위부분을 비동기식으로 처리를 할수있을까요 ...?

 

ajax success 부분 안에서 쓴다면 결국 ajax 끝나고 오는거 아닌가요 ??

 다음글 SVN을 사용하는 방법을 모르겠습니다. (4)
 이전글 페이지가 안뜨는 현상입니다. (1)

댓글

변종원(웅파) / 2019/03/13 15:07:00 / 추천 0

1 .이런 경우는 보통 큐를 사용합니다. ajax 비동기로 큐에 메일보낼 내용을 넣고 끝. 

2. 데몬이 돌면서 큐에 쌓인 이메일 데이터를 가져와서 메일 전송

1, 2 번이 따로 돌게 됩니다.

질문학생 / 2019/03/13 15:08:47 / 추천 0

@변종원(웅파)

https://opentutorials.org/module/327/4130  위방법을 말씀하시는건가용 ?

 

그런데 이 건수가 많지않을것같아서요ㅕ

 

비동기로 그때그때 처리하고싶은데 ... curl 쪽을 비동기로 처리할수있나요 ?

변종원(웅파) / 2019/03/13 18:23:08 / 추천 0

php 언어(인터프리터) 특성을 이해햐셔야할 것 같네요.

a.php에 요청을 전송하고 결과는 상관없다면 a.php에서 항상 true를 리턴하면 됩니다. 할수는 있으나 이런 방식은 사용하지 않는 것이 좋습니다.