작은 요구 사항이 있습니다. 프로그램에서는 요청만 보내고 다른 사항은 신경 쓰지 않습니다.
작은 요구 사항이 있습니다. 프로그램에서는 요청만 보내고 다른 사항은 신경 쓰지 않습니다.
cURL 사용
cURL은 일부 매개변수를 지정된 경로에 게시할 수 있습니다. 특정 예를 들어 PHP cURL 함수를 매개변수화할 수 있습니다
file_get_contents('http://baidu.com')를 사용하는 것이 가장 쉽습니다. 더 복잡하다면 컬이나 fsockopen을 사용할 수 있습니다
실제로 원하는 것은 요청을 보낼 때 현재 프로세스가 차단되지 않는 것입니다.
Baidu PHP 비동기 작업으로 시작
일반적인 솔루션에는 Redis 게시/구독, Gearmand 등이 포함됩니다.
제가 만든 것은 더 복잡합니다. PHP는 고속 통신(nodejs에게 수행할 작업을 알려줌)을 위해 소켓과 Nodejs를 사용하고, Nodejs는 RabbitMQ와 통신하는 소비자 역할을 하므로 명확하게 말씀드릴 수 없습니다.
원칙은 현재 PHP가 Http 요청 시작을 담당하지 않고 수행할 작업을 알리고 특수 프로그램이 요청 작업을 수행하도록 하는 역할만 담당한다는 것입니다.
<code>do_something(); // 告知后台执行请求任务, 几乎不占用时间就立马执行 next(); do_backend("send_request", "http://www.baidu.com"); // 接着做其它东西 next();</code>
작업자 측(작업 실행 측, PHP 프로그램 또는 다른 언어의 프로그램일 수 있음)
<code>// 异步监听任务 subscribe("send_request", function($url){ file_get_contents($url); // 或 curl });</code>