当前位置: 首页 > 知识库问答 >
问题:

事件不起作用laravel,在队列中,进程正在进行并给出错误

凤高澹
2023-03-14

创建了一个事件,它在本地工作,上传到服务器停止工作。

[2021-04-02 14:26:51]local.Error:找不到类“Redis”{“异常”:“[object](错误(代码:0):在/Vendor/Laravel/Framework/src/Illuminate/Redis/Connectors/phPreDisconnector.php:75处找不到类”Redis“)[stacktrace]

如何连接Redis?

PrivatMessageEvent.php

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class PrivatMessageEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $data;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new Channel('private-channel');
    }
}

当我启动队列时,我可以看到此事件正在进行中,但给出一个Failed。

脚本刀片模板

 socket.on("private-channel:App\\Events\\PrivatMessageEvent", function (message) {
                appendMessageToReceiver(message);
            });

配置\bd

   'redis' => [
        'client' => env('REDIS_CLIENT', 'phpredis'),
        'cluster' => false,
        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'database' => 0,
            'port' => env('REDIS_PORT', '6379'),
        ]
    ]

共有1个答案

梁丘波鸿
2023-03-14

您能验证是否安装并启用了phpredis扩展吗?

请查看Laravel文档中的介绍部分:https://Laravel.com/docs/8.x/redis#introduction

 类似资料:
  • 问题内容: 我想在python中使用线程下载大量网页,并通过以下代码在网站之一中使用队列。 它放置了一个无限的while循环。是否每个线程都连续运行,直到所有线程完成才结束?我错过了什么吗? 问题答案: 将线程设置为线程会使线程在主线程完成后退出。但是,是的,您是正确的,只要线程中的某些内容将阻塞,线程将连续运行。 该文档解释了此详细信息Queue docs python Threading文档也

  • 问题内容: 我需要一个C / C ++ API,该API允许我列出Linux系统上正在运行的进程,并列出每个进程已打开的文件。 我 不 希望最终直接读取的/ proc /文件系统。 有人能想到一种方法吗? 问题答案: http://procps.sourceforge.net/ http://procps.cvs.sourceforge.net/viewvc/procps/procps/proc/

  • 这些天我们一直在尝试安装hadoop集群。有时成功,但大多数时候失败了。我根据官方文件和一些看似高质量的博客进行配置。 我遇到的问题是:所有进程(包括namenode、datanode、nodemanager、resourcemanager)都可以通过命令查看: 但是奴隶们实际上没有工作。我无法在web界面master:8088或master:50070中看到它们 有人说这是重复的namenode

  • 问题内容: 我有一堆添加到的生产者线程和一个接收对象的工作线程。现在,我想扩展它,以使两个工作线程可以接收对象,但是对对象执行不同的工作。这是一个转折: 我希望 两个 接收线程都处理已放在队列中的对象。 如果我继续使用BlockingQueue,则两个线程将争用对象,只有一个工作线程将获取对象。 因此,我正在寻找类似于BlockingQueue的东西,但是具有广播行为。 应用程序:生产者线程实际上

  • nav.component.ts app.module.ts app.component.ts

  • 在我的项目中,我试图上传一个图像,将其作为数据URL读取,并将其存储到我的数据库中。 我的超文本标记语言ng-Click的调用这些方法与true或false作为参数(一个做身体图像和其他一个配置文件图像) 根据调用true还是false,它会更改事件的id。 出于某种原因,当它的“真”时,一切都运行得非常好。用户可以选择图像,将其正确发送到数据库,并正确加载图像。 然而,当调用“false”时,我