首页 > 数据库 >Hyperf redis 异步队列使用

Hyperf redis 异步队列使用

时间:2024-06-23 15:53:41浏览次数:28  
标签:异步 10 default redis Hyperf timeout class

config/autoload/processes.php

use App\Book\Process\CreateQrcodeComsumer;

return [
    Mine\Crontab\MineCrontabProcess::class,
    Hyperf\AsyncQueue\Process\ConsumerProcess::class,
    CreateQrcodeComsumer::class
   //增加自定义的异步队列类    
];

由于hyperf只使用自己default的队列 ,所以要重新创建一个

<?php

namespace App\Book\Process;

use Hyperf\AsyncQueue\Process\ConsumerProcess;
use Hyperf\Process\Annotation\Process;

#[Process(name: "createQrcode")]
class CreateQrcodeComsumer extends ConsumerProcess
{
    protected string $queue = 'createQrcode';
}

然后在config/autoload/async_queue.php

<?php

use App\Book\Task\ExportDataJob;

return [
    'default' => [
        'driver' => Hyperf\AsyncQueue\Driver\RedisDriver::class,
        'channel' => 'default',
        'timeout' => 2,
        'retry_seconds' => [5, 10, 20],
        'handle_timeout' => 10,
        'processes' => 1,
        'concurrent' => [
            'limit' => [
                'default' => 10,
            ],
        ],
        'redis' => [
            'pool' => 'default',
            'queue' => '{default}',
        ],
        'processors' => [
            // 在这里添加您的任务处理器类名
            // App\Book\Task\ExportDataJob::class,
            ExportDataJob::class
        ],
    ],
    'createQrcode' => [
        'driver' => Hyperf\AsyncQueue\Driver\RedisDriver::class,
        'channel' => 'createQrcode',
        'timeout' => 2,
        'retry_seconds' => [5, 10, 20],
        'handle_timeout' => 10,
        'processes' => 1,
        'concurrent' => [
            'limit' => [
                'default' => 10,
            ],
        ],
        'redis' => [
            'pool' => 'default',
            'queue' => '{default}',
        ],
        'processors' => [
            // 在这里添加您的任务处理器类名
        ],
    ],
];

标签:异步,10,default,redis,Hyperf,timeout,class
From: https://www.cnblogs.com/sdfgdrg/p/18263527

相关文章

  • 操作系统的发展史、多道技术、进程理论、进程的三状态、同步异步/阻塞与非阻塞、开启
    【操作系统发展史】1为什么要使用操作系统呢?2程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,3这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,4只需要考虑自己的应用软件的编写就可以了,应用软件......
  • hyperf 生成二维码并且转为CMYK色彩通道的图片
    注意:CMYK色彩通道的图片格式需要为JPEG或TIFF,png是不支持CMYK的,不然转换的话会转换会srgb或Gray使用前先安装imagick拓展1{2"require":{3"ext-imagick":"*"4}5}  1publicfunctioncreateQrcode($data):void2{3//......
  • 深入理解redis持久化—AOF日志
    redis为什么需要持久化redis是内存数据库,redis所有的数据都保存在内存中如果此时pc关机或重启,那么内存中的用户数据岂不是丢失了?redis这么不安全吗?作为数据库,保证数据的安全,持久是基本需求,redis采用了AOF和RDB两种持久化方式,将用户数据以特殊形式保存在磁盘中,确保重启时......
  • Redis Desktop Manager for Mac(Redis桌面管理工具) v2022.5.0中文版
    RedisDesktopManagerforMac是Mac平台上一款非常实用的Redis可视化工具。RDM支持SSL/TLS加密,SSH隧道,基于SSH隧道的TLS,为您提供了一个易于使用的GUI,可以访问您的Redis数据库并执行一些基本操作:将键视为树,CRUD键,通过shell执行命令。RedisDesktopManagerforMac(Redis桌......
  • Redis-数据结构-跳表详解
    Redis概述Redis-数据结构-跳表详解跳表(SkipList)是一种基于并联的链表结构,用于在有序元素序列中快速查找元素的数据结构。Redis中广泛使用跳表来实现有序集合(SortedSet)这一数据结构。1.跳表的基本概念和特点跳表的核心思想是通过在不同层级(level)上增加指针来加速查......
  • 【C#进阶】多线程和异步编程_2024-06-22
    关于多线程和异步编程简单来说,就是多线程并行执行任务提速,异步编程等待不浪费资源,并发集合确保数据访问安全,三者合力提升程序效率与反应能力。1.理解线程想象一下,你在厨房做饭,同时需要洗菜、切菜、炒菜。如果你一个人来做,就需要在这些任务之间来回切换,这很慢。但如果请几个朋友......
  • Redis中集合的底层实现原理
            Redis中对于Set类型的底层实现,直接采用了hashTable。但对于Hash、ZSet、List集合的底层实现进行了特殊的设计,使其保证了Redis的高性能。        对于Hash与ZSet集合,其底层的实现实际有两种:压缩列表zipList,与跳跃列表skipList。这两种实现对于用户来......
  • Redis作为常见的缓存工具,我们是如何进行redis缓存持久化的呢?
    Redis的数据是全部存储在内存之中,但如果这时候Redis服务宕机,那存储在内存中的数据也会一并丢失,所以为了让redis的数据避免丢失或者是少丢失一点,就要利用策略来将redis的数据存入到磁盘之中,所以就诞生了redis的持久化。即Redis持久化的意义就是为了保证突然宕机,内存数据不会全部......
  • 一条Redis命令是如何执行的?
    一条Redis命令是如何执行的?源码结构核心数据结构redisServerredisClientredisDbredisObjectaeEventLoop核心流程redis启动流程main()主循环aeEventProcess执行过程命令执行的流程过程1(redis启动)过程2(客户端与服务端建立链接)过程3(客户端发送命令给服务端)过程4(写就绪将......
  • redis持久化操作【随记】
    持久化Redis它是将数据保存到内存当中,内存里的数据最大特点:断电易失.保存在内存的数据就没有了.如果如果这些数据还有用,业务使用啥的,不能就让它这么没有了.redis当中提供持久化机制,说白了,将内存的数据—->写入到磁盘.–>持久化.1rdb方式redisdatabase,持......