【问题标题】:How to connect two laravel applications?如何连接两个laravel应用程序?
【发布时间】:2017-03-23 15:58:43
【问题描述】:

我有 2 个 laravel (5.2) 应用程序共享同一个数据库。这 2 个应用程序由 2 种不同的用户类型使用。现在我想让它们相互连接,以便当用户使用第一个应用程序发送请求以将数据保存到特定数据库表时,会向第二个应用程序发送带有此数据的通知。我怎样才能做到这一点 ??

【问题讨论】:

  • 当你说notification时,这是异步发生的吗?或者您是否将用户重定向到另一个应用程序上的路由,并且您希望它获得一些价值?
  • 如何将 API 从第二个应用程序公开给第一个应用程序,以便当事件发生时,您的第一个应用程序可以调用第二个应用程序的 API?
  • @Rob 2 个应用程序用于 2 个不同的用户类型......所以,我希望使用第一个应用程序的用户发送的请求能够到达使用第二个应用程序作为通知的用户。跨度>
  • 您可能需要阅读有关 REST API 设计的内容。
  • 我建议由第一个应用程序将通知写入共享数据库,然后根据第二个应用程序上的用户类型从数据库中读取它们。或者,如果您希望它们立即显示在屏幕上,您可以考虑使用套接字。 laravel.com/docs/5.4/broadcasting

标签: laravel


【解决方案1】:

我过去做过以下事情:

  1. 在 APP1 中使用空处理程序创建可排队作业。
  2. 在 APP1 中触发排队作业
  3. 在 APP2 中使用已填写的处理程序创建可排队作业。
  4. 在 APP2 中处理队列(例如php artisan queue:listen

然后在 APP1 中排队作业。例如:

# APP1 - trigger

\Queue::push(new \App\Jobs\EventToBeWorkedOnInApp1());

# app1/Jobs/EventToBeWorkedOnInApp1.php - job
class EventToBeWorkedOnInApp1 extends Job implements SelfHandling, ShouldQueue
{
    use SerializesModels;
    public function handle()
    {
        // @handler is in APP2
    }
(...)

并在 APP2 中为作业创建处理程序 # APP2

    # app1/Jobs/EventToBeWorkedOnInApp1.php - job
    class EventToBeWorkedOnInApp1 extends Job implements SelfHandling, ShouldQueue
    {
        use SerializesModels;
        public function handle()
        {
            // WORK WITH THE JOB
        }
    (...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多