slims/queue

SLiMS库,用于通过消息代理管理异步任务

v1.0.0 2024-01-08 01:05 UTC

This package is auto-updated.

Last update: 2024-09-08 02:40:55 UTC


README

A SLiMS组件,用于管理队列进程。您可以提供自己的处理器,请阅读位于 src/Handlers/ 中的处理器规范。

如何

安装

composer require slims/queue

生产

use SLiMS\Queue\Manager as Queue;

Queue::produce('your message/formatter task etc'); // default topic is slims

// or 

Queue::produce('your message/formatter task etc', topic: 'csv_process');

消费

use SLiMS\Queue\Manager as Queue;

Queue::consume(topic: 'slims', callback: function($message){
    // write your code here
});

// with channel name

Queue::setChannel('worker1')->consume(topic: 'slims', callback: function($message){
    // write your code here
});

配置

队列配置可在 config/queue.php 中找到

<?php

return [
    'default_handler' => 'database', // change it with yours. e.g : nsq
    'default_topic' => 'slims',
    'handlers' => [
        'database' => [
            'class' => \SLiMS\Queue\Handlers\Database::class,
            'options' => [
                'table' => 'queue',
                'order' => 'asc',
                'sort_by' => 'created_at',
                'delay_per_job' => 5 // in second
            ]
        ],
        /*'nsq' => [
            'class' => your_handler::class,
            'options' => [
                // your options here, such as host etc
            ]
        ]*/
    ]
];