首页 文章

Laravel - 在一台服务器上发送作业,在另一台服务器上处理

提问于
浏览
1

我正在研究Laravel应用程序的日志记录方面,我计划将数据发送到SQS以便以后检索 . 但是,我想将作业从我的 生产环境 服务器发送到AWS Queue,但是然后让一个Queue在一个单独的Logging服务器上工作,该服务器监听Queue .

我理解如何设置队列工作者来监听队列,但是,Laravel的工作是自我处理的 . 因此,当Logging服务器上的worker从SQS检索消息时,它将在同一名称空间(具有相同的Class名称)中查找作业来处理它 . 有没有办法以不同的方式处理这个问题,或者我只需要在Logging服务器上命名Job Handler,就像 生产环境 服务器上的Job Dispatcher一样 .

1 回答

  • 1

    您可以为每个特定服务器创建不同的队列,并根据它们必须执行的位置在其中一个上发送每个作业 .

    基本上,这是如何在特定队列上推送作业:

    $job = (new SendReminderEmail($user))->onQueue('emails');
    

    这是从特定队列处理作业的命令:

    php artisan queue:listen --queue=emails
    

    希望能帮助到你

相关问题