Php 从Lumen通过队列与Laravel通信?

Php 从Lumen通过队列与Laravel通信?,php,laravel,laravel-5.4,lumen,Php,Laravel,Laravel 5.4,Lumen,我有一个专用API的流明设置。Laravel在内部向Lumen发出API请求,然后Lumen将对作业排队(Amazon SQS) 当队列作业完成或失败时,您将如何回复Laravel?如果队列工作者由于任何原因无法与Laravel应用程序通信,则需要稍后再试 我已经附上了系统架构图。我的问题是关于你可以看到的红色虚线 首先创建一个名为NotifyLaravel的新作业,其中包含您需要的任何参数(作业ID、任务ID、用户ID等) 队列中的作业完成后,您可以在任务完成后立即分派(new NotifyL

我有一个专用API的流明设置。Laravel在内部向Lumen发出API请求,然后Lumen将对作业排队(Amazon SQS)

当队列作业完成或失败时,您将如何回复Laravel?如果队列工作者由于任何原因无法与Laravel应用程序通信,则需要稍后再试

我已经附上了系统架构图。我的问题是关于你可以看到的红色虚线


首先创建一个名为
NotifyLaravel
的新作业,其中包含您需要的任何参数(作业ID、任务ID、用户ID等)

队列中的作业完成后,您可以在任务完成后立即
分派(new NotifyLaravel($jobId))

此作业的作业(双关语)只是ping Laravel以指示队列已完成运行此特定作业。我不会给出一个示例实现,但基本上您可以在Lumen和Laravel之间创建一个共享秘密来“验证”请求。Lumen然后只发送作业ID或用于跟踪它们的标识符


如果您的Laravel实例处于脱机状态,您只需抛出一个异常即可。队列工作程序将稍后重试。后者在文档()中有解释。

@Feilx谢谢您的回答,我已经考虑过了。你觉得使用pusher.com怎么样?@I'll-Be-Back pusher.com用于通过频道、WebSocket、iOS推送功能和Google推送功能实时通知客户。它并不适用于您当前的用例。您可以做的最优化的事情就是我在回答中所写的,您的LumenAPI将JSON负载发送到Laravel上的私有端点;您正在创建的作业(
NotifyLaravel
)将在内腔侧创建