【问题标题】:Laravel Api responseLaravel Api 响应
【发布时间】:2016-02-10 15:09:57
【问题描述】:

我是 Laravel 和 Api 开发的新手,我遇到了一个问题,我的 api 的工作流程是,用户将发布数据发送到 api,然后 api 获取该数据并将数据处理到数据库,现在有一个过程其中php等待30分钟。同时将数据插入两个不同的表中。 问题是据我所知,在该过程完成后,只有我可以将 json 响应发送回用户。但这样用户必须等待 30 分钟。

有没有办法让需要 30 分钟的进程在后台工作并在该进程启动时立即发送响应 json?

1) 我研究了队列,但是我将托管的 Web 服务器不会让我访问整个服务器来安装某些东西,它只会给我空间来存放我的文件。

我很困惑如何实现此功能,以便用户不必等待太多响应。

我会很感激的。

谢谢,

【问题讨论】:

  • 将数据处理推迟到队列是执行此操作的实用方法。 Laravel 提供了database driver for queues,这意味着你不需要安装额外的服务,如 beanstalk、redis 等来处理队列,所以如果托管服务提供商不允许你安装任何东西,你应该没问题。
  • 谢谢博格丹,我研究过这个,我也想过使用队列,但是这 30 分钟内的一项任务是 api 调用谷歌云消息,那也行。此外,请您提供队列的链接。

标签: api laravel-5


【解决方案1】:

您无需安装任何服务器即可使用queue。您的所有配置都在config/queue.php 文件中。

你可以使用

  • Amazon SQS:aws/aws-sdk-php ~3.0
  • Beanstalkd:pda/pheanstalk ~3.0
  • Redis:predis/predis ~1.0

在此处阅读更多信息:https://laravel.com/docs/5.2/queues#introduction

【讨论】:

  • 所以我也可以使用作业来调用另一个 API(例如谷歌云消息)
  • 如果您不想让用户等待,可以。你可以
  • 感谢 Jilson,将尝试发表评论
  • Jilson,我有一个小问题,我们不能使用线程来做后台工作,我的意思是为任务创建线程并返回 Json 响应。我真的是新手。
  • Thread 实际上是一个正在执行的程序。 Queue其实是帮你缓冲线程要处理的数据。所以队列可以帮助你以某种方式喂你的线程。
猜你喜欢
  • 1970-01-01
  • 2018-09-15
  • 2021-06-25
  • 2019-04-11
  • 2019-06-13
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多