Php 导入具有角度和角度停止的大量记录

Php 导入具有角度和角度停止的大量记录,php,angular,laravel,nginx,Php,Angular,Laravel,Nginx,我正在开发一个带有angular的服务,它将包含大量对象的数组发送到带有laravel的服务器,以便插入或更新。当我发送3000或5000条记录时,服务正常工作,但当记录超过5000条时,会发生一些奇怪的事情 我在服务器上有一个运行redis的websocket,它为进度条提供了功能,该进度条指示导入记录的进度。 当有许多记录时,服务器上的过程将重新执行。已插入或更新的记录再次执行相同的过程。我知道这一点,因为在数据库中我看到了自动增量id,即插入或更新注册表的时间和日期 不过,我的第一个迹象表

我正在开发一个带有angular的服务,它将包含大量对象的数组发送到带有laravel的服务器,以便插入或更新。当我发送3000或5000条记录时,服务正常工作,但当记录超过5000条时,会发生一些奇怪的事情

我在服务器上有一个运行redis的websocket,它为进度条提供了功能,该进度条指示导入记录的进度。 当有许多记录时,服务器上的过程将重新执行。已插入或更新的记录再次执行相同的过程。我知道这一点,因为在数据库中我看到了自动增量id,即插入或更新注册表的时间和日期

不过,我的第一个迹象表明,这个过程正在重复,那就是进度条正在重新启动。 似乎这不再是问题,在第二次意外执行过程中,http请求结束并返回ERR_empty_响应

在启动insert或update进程之前,我打开了一个事务,只有在该进程成功运行时才执行commit。显然,如果它不运行回滚

你知道会是什么吗

我的服务器的运行时环境是nginx,laravel5.8(php)。
使用该服务的应用程序是使用Angular 9开发的,我怀疑发生的情况是您的作业超时并自动重新启动,因为Laravel“认为”它失败了,因为它没有返回成功的响应


我建议你把你的大工作分成小工作。这意味着你的“大”作业会收到所有这些请求,但作业本身会创建5000个单独处理每个请求的小作业。因此,大作业将立即返回成功响应,Redis将尽可能处理每个小作业。

我曾想过通过减轻负载来减轻服务器工作,但我想不出一种有效的方法,在完成任务后立即提交给BD。在请求仍处于活动状态时,如何发送记录的“线程”呢?您不能使用此方法。在这种方法中,每个小作业本身就是一个“会话”