对于 Laravel api 中的端点,我调用的外部 api 非常慢,可能需要 90 分钟才能响应,因为它需要运行一大堆进程。
在我的 laravel api 中,我会立即向客户发送请求已启动的响应,并且在我收到 api 的响应后 90 分钟结束后,他们会收到一封电子邮件。
调用 REST API 的超时时间为 120 分钟甚至更长,并在此期间保持开放连接是否可以?它会影响我的 API 的其他用户的性能吗?我是否需要更改任何 Laravel 参数(超时除外)以便一切顺利运行(例如,是否有最大并发工作人员数量?)?
如果您还没有使用它们,那么您需要分派作业,而不仅仅是执行代码。
第 1 步:创建工作
php artisan make:job ProcessRequest
Run Code Online (Sandbox Code Playgroud)
步骤 2:向作业添加句柄逻辑
/**
* Execute the job.
*
* @return void
*/
public function handle(AudioProcessor $processor)
{
//Logic goes in here.
}
Run Code Online (Sandbox Code Playgroud)
步骤 3:将作业分派到需要的地方
ProcessRequest::dispatch();
Run Code Online (Sandbox Code Playgroud)
步骤 4:(可选)安装Laravel Horizon来监控作业 安装后不要忘记启动它
php artisan horizon
Run Code Online (Sandbox Code Playgroud)
另请查看延迟调度作业 望远镜是一件好事,
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |