Php 我想在laravel中运行一个异步调用,然后返回true。返回TRUE不';不必等待异步调用完成

Php 我想在laravel中运行一个异步调用,然后返回true。返回TRUE不';不必等待异步调用完成,php,laravel,webhooks,background-task,shopify-app,Php,Laravel,Webhooks,Background Task,Shopify App,事实上,我已经创建了一个shopify应用程序,并用它卸载webhook。卸载应用程序时,shopify会通知我卸载应用程序的情况,以便我可以执行一些相关流程。如果shopify在5秒内没有得到响应,那么它会向我发出另一个通知,导致两次呼叫 在我的webhook函数中,我只是从数据库中删除商店,这有时需要时间。我可以在laravel中做些什么,以便我的删除过程异步运行。调用将是异步的删除过程后,我的下一行代码可以返回“true”。我的卸载函数位于下面给定代码的InstallController.

事实上,我已经创建了一个shopify应用程序,并用它卸载webhook。卸载应用程序时,shopify会通知我卸载应用程序的情况,以便我可以执行一些相关流程。如果shopify在5秒内没有得到响应,那么它会向我发出另一个通知,导致两次呼叫

在我的webhook函数中,我只是从数据库中删除商店,这有时需要时间。我可以在laravel中做些什么,以便我的删除过程异步运行。调用将是异步的删除过程后,我的下一行代码可以
返回“true”
。我的卸载函数位于下面给定代码的InstallController.php中

应用程序内\作业。我已经创建了BackgroundJobs.php


名称空间App\Jobs;
使用照明\总线\可排队;
使用照明\队列\序列化模型;
使用Illumb\Queue\InteracticsWithQueue;
使用Illumb\Contracts\Queue\ShouldQueue;
使用Lightning\Foundation\Bus\Dispatchable;
使用Illumb\Support\Facades\DB;
类BackgroundJobs实现ShouldQueue
{
使用可调度、可交互、可排队、可序列化的模型;
受保护$shopId;
/**
*创建一个新的作业实例。
*
*@返回无效
*/
公共函数构造($shopId)
{
$this->shopId=$shopId;
}
/**
*执行作业。
*
*@返回无效
*/
公共函数句柄()
{
DB::表(“商店”)
->其中(“id”,$this->shopId)
->删除();
返回true;
}
}
这是一个控制器InstallController.php,其中包含“uninstall()”函数调度队列


名称空间App\Http\Controllers;
使用\Http\Request;
类InstallController扩展控制器
{
公共职能指数()
{
返回视图(“安装”);
}
公用函数卸载(请求$Request)
{
$shop_id=$request->get('shop id');
//调度作业
调度(新建\应用程序\作业\背景作业($shop_id));
返回“真”;
}
}

所以,我如何
返回“true”
,而不需要等待队列完成

您可以在完成作业之后或之前使用作业事件来执行代码

所以您可以在AppServiceProvider中定义启动方法

public function boot()
{
    Queue::before(function (BackgroundJobs $event) {
        // $event->connectionName
        // $event->job
        // $event->job->payload()
    });

    Queue::after(function (BackgroundJobs $event) {
        // $event->connectionName
        // $event->job
        // $event->job->payload()
    });
}
更多详情请查看官方文件


在前面的部分中,我可以直接右键
返回true
,这将导致此作业异步?在后台它会做剩下的工作吗?