PHP - 실행 시간 및 반환 값에 관계없이 실행하는 데 오랜 시간이 걸리는 API에 액세스할 때 다음 코드 줄을 직접 실행하는 방법은 무엇입니까?
阿神2017-05-16 13:10:48
0
8
437
제목 그대로:
사실 페이지를 열 때 API를 통해 프로그램을 실행하고 싶지만 이 프로그램은 상대적으로 느리게 실행되고 실행 후 페이지로 돌아오는 것에 대해 걱정하고 싶지 않습니다. 요청하면 다음 코드를 계속해서 실행할 수 있습니다. PHP 코드를 사용하여 이 상황을 구현하는 방법을 알려주십시오.
프로그램을 비동기식으로 시작하려면 가능합니다. 소켓을 사용할 수 있습니다. 특정 구현 단계 1. 소켓 서버에 명령 보내기 2. 소켓은 명령을 수신하고 긴 시간을 통해 비동기식으로 보냅니다. link 다른 작업 처리 서버로 명령 보내기 3. 소켓은 웹 서버에 명령을 받아 실행하라고 직접 지시하지만 작업은 작업 처리 서버를 통해 실행됩니다. ---- 이 단계는 비동기 ajax 실행과 동일합니다. 4. 작업 처리 서버가 완료됩니다. 그 후 소켓 서버에 완료 명령을 보냅니다. 5. 소켓 서버가 지정된 작업 완료 로직을 완료합니다. 물론 이렇게 합니다. 또 다른 더 좋은 방법이 있다면 해당 방법에 부족한 점을 지적해주세요. 위 코드의 구체적인 구현은 Workman을 확인하세요
@dawnblog에서 언급한 방법은 실제로 가능하지만 주제의 요구 사항에는
를 처리할 필요가 없습니다.fsockopen
를 사용한 간단한 트리거만 필요하며 콜백 데이터참고자료: http://www.laruence.com/2008/...
프로그램을 비동기식으로 시작하려면 가능합니다. 소켓을 사용할 수 있습니다.
특정 구현 단계
1. 소켓 서버에 명령 보내기
2. 소켓은 명령을 수신하고 긴 시간을 통해 비동기식으로 보냅니다. link 다른 작업 처리 서버로 명령 보내기
3. 소켓은 웹 서버에 명령을 받아 실행하라고 직접 지시하지만 작업은 작업 처리 서버를 통해 실행됩니다. ---- 이 단계는 비동기 ajax 실행과 동일합니다.
4. 작업 처리 서버가 완료됩니다. 그 후 소켓 서버에 완료 명령을 보냅니다.
5. 소켓 서버가 지정된 작업 완료 로직을 완료합니다.
물론 이렇게 합니다. 또 다른 더 좋은 방법이 있다면 해당 방법에 부족한 점을 지적해주세요.
위 코드의 구체적인 구현은 Workman을 확인하세요
젊은이여, 내가 두 단어의 진언을 가르쳐 주겠다: 팀! 목록!
적시성이 강하지 않은 경우. 캐시 추천
fastcgi_finish_request()는 당신을 만족시킬 수 있으며 php-fpm에서만 지원됩니다. . 아니면 대기열 서비스를 만드세요
PHP에는 비동기 콜백도 없나요? 안녕하세요
Swoole 프로세스 관리는 PHP에서 다릅니다. swoole 프로세스 관리를 참조하세요
이런 비동기 전송 기술이 소켓을 사용하지 않고도 가능하지 않나요