You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP CLI异步调用API无需等待响应?附示例

实现无需等待响应的HTTP调用(PHP/Laravel)

当然可以实现无需等待响应的异步调用,以下是几种实用方案及示例:

方案1:原生PHP Socket异步请求

直接通过fsockopen建立连接,发送请求后立即关闭连接,完全不等待服务器响应,适合简单场景。

<?php
$targetUrl = 'http://192.168.10.136:81/print/in-bill-tmp';
$urlParts = parse_url($targetUrl);

// 建立Socket连接
$socket = fsockopen($urlParts['host'], $urlParts['port'] ?? 80, $errorNo, $errorMsg, 30);
if (!$socket) {
    error_log("连接失败: $errorMsg ($errorNo)");
    exit;
}

// 构造GET请求头(如需POST可自行修改请求体)
$requestHeader = "GET " . ($urlParts['path'] ?? '/') . " HTTP/1.1\r\n";
$requestHeader .= "Host: " . $urlParts['host'] . "\r\n";
$requestHeader .= "Connection: Close\r\n\r\n";

// 发送请求后立即关闭连接
fwrite($socket, $requestHeader);
fclose($socket);

这个脚本可以直接通过PHP CLI执行,或者嵌入到Laravel代码中,执行后立刻结束,不会阻塞后续逻辑。

方案2:Laravel队列异步执行(推荐)

将HTTP请求任务放入Laravel队列,主流程直接继续执行,队列Worker后台处理请求,自带重试、失败管理机制。

1. 创建队列任务

php artisan make:job SendPrintRequest

2. 编写任务逻辑(app/Jobs/SendPrintRequest.php)

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Http;

class SendPrintRequest implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function handle()
    {
        // 这里即使等待响应也不会阻塞主业务流程
        Http::get('http://192.168.10.136:81/print/in-bill-tmp');
    }
}

3. 业务代码中分发任务

// 直接分发任务,主流程立刻继续执行
SendPrintRequest::dispatch();

4. 启动队列Worker

php artisan queue:work

方案3:CLI后台执行脚本

在主程序中调用独立脚本,让其在后台运行,主进程不等待执行结果。

1. 编写独立请求脚本(print_request.php)

<?php
require __DIR__.'/vendor/autoload.php'; // Laravel项目需引入自动加载文件

use Illuminate\Support\Facades\Http;

Http::get('http://192.168.10.136:81/print/in-bill-tmp');

2. 业务代码中触发后台执行

// &表示后台运行,>/dev/null 2>&1 丢弃所有输出避免阻塞
exec('php ' . base_path('print_request.php') . ' >/dev/null 2>&1 &');

内容的提问来源于stack exchange,提问作者Kiều Toàn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:07:04