【问题标题】:NodeJS push queue, consumed by Laravel workerNodeJS 推送队列,由 Laravel worker 消费
【发布时间】:2015-12-19 15:23:11
【问题描述】:

我正在尝试使用节点应用发送到 SQS 的消息。所以“push”动作由服务器 A 上的 Node App 执行,“listen”动作由服务器 B 上的 Laravel App 执行。

我的问题:我不知道如何格式化要与php artisan queue:work 一起使用的有效负载。

以前有没有人遇到过这种情况并找到了解决方案?

谢谢!

【问题讨论】:

    标签: php node.js laravel queue


    【解决方案1】:

    找到了!经过一些测试,我终于设法从队列中读取消息。

    基本上,有效负载必须有一个 job 属性,其中包含负责执行工作的类,以及一个 data 属性,其中包含实际数据。比如:

    var payload = {
            job: 'App\\Jobs\\MyTestJob@handle',
            data: {user: foo, email: bar@example.com}
        };
    

    然后payload会被编码成json字符串并发送给SQS。

    在 Laravel 端,Job 类如下所示:

    public function handle($job, $data){}
    

    队列处理程序将自动解码并注入在 payload.job 中指定的方法的属性。如果没有指定方法,Laravel 将尝试运行 ::fire() 方法。

    【讨论】:

    • 我知道这个解决方案已经很老了,在 Laravel 5.3 上它不再适用于我了你知道如何让它继续工作吗?看看这里:stackoverflow.com/questions/42465455/…
    • 仅供参考,这在 Laravel 5.4 上仍然适用于我。编辑:但是,它不会从队列中删除作业,因此不能完全解决问题。
    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多