PHPackages                             fgh151/tg-queue - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. fgh151/tg-queue

ActiveLibrary[Queues &amp; Workers](/categories/queues)

fgh151/tg-queue
===============

Telegram queue bus

0.0.2(4y ago)04Apache-2.0PHPPHP 7.3

Since Feb 3Pushed 4y ago1 watchersCompare

[ Source](https://github.com/fgh151/tg-queue)[ Packagist](https://packagist.org/packages/fgh151/tg-queue)[ Docs](https://openitstudio.ru)[ RSS](/packages/fgh151-tg-queue/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (0)

### Установка

[](#установка)

```
composer require fgh151/tg-queue
```

### Отправка сообщения в очередь

[](#отправка-сообщения-в-очередь)

```

$channel = 'some_chat_id';
$payload = json_encode(['some' => 'object', 'or' => 'array']);

$result = (fgh151\tg\QueueListener::getInstance())->push($channel, $payload)

```

### Обработчик очереди

[](#обработчик-очереди)

```

$l = fgh151\tg\QueueListener::getInstance();
$l->onMessage($url, $fn);

```

#### Пример обработки очереди на Code Igniter

[](#пример-обработки-очереди-на-code-igniter)

```
class Daemon extends CI_Controller {

    /**
    * @return string[] Массив адресов каналов
     * Полученный при вызове функции $result = fgh151\tg\Queue::push($channel, $payload)
     * В массиве $result есть ключ 'url'
     */
    public static function getUrls(): array
    {
        // тк количество каналов будет изменяться не часто, целесообразно отдавать результат из кеша
        return ['url1', 'url2'];
    }

    /**
    * @param $params Сообщение, полученное из очереди
    * @return bool
     */
    public static function handler($params): bool
    {
        var_dump($params);
        /** Тут код обработки сообщения, например отправки, сохранение в бд и т.д. */
        return true; //Если вернуть true сообщение удалиться из очереди
    }

    public function queue()
    {
        /** @see https://www.php.net/manual/ru/language.types.callable.php */
        (fgh151\tg\QueueListener::getInstance())
            ->fetchUrls(['Daemon', 'getUrls'])
            ->onMessage($url, ['Daemon', 'handler'])
            ->setMaxPerSecond(3) //Максимальное количество сообщений в секунду. По умолчанию 3, можно не вызывать
            ->setMaxPerMinute(60) //Максимальное количество сообщений в минуту. По умолчанию 60, можно не вызывать
            ->run(100); // Интервал времени в млсек, через который проверять наличие новых каналов, можно не указывать, по умолчанию 1000 млс (1 сек)
    }
}

```

##### Изменение конфигурации подключения

[](#изменение-конфигурации-подключения)

```

options = [];

$client = new \fgh151\tg\AwsClient(options);

(fgh151\tg\QueueListener::getInstance())
->setClient($client);

```

Массив $options конфигурирует подключение. Параметры массива можно посмотреть [тут](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html)

В данном случае можно не использовать переменные окружения для ключей доступа:

```
$options = [
    'version'     => 'latest',
    'region'      => 'us-west-2',
    'credentials' => [
        'key'    => 'my-access-key-id',
        'secret' => 'my-secret-access-key',
    ],
];

```

##### Запуск воркера

[](#запуск-воркера)

Запуск воркера имеет смысл делегировать на supervisor или systemd

###### Пример конфигурации Supervisor

[](#пример-конфигурации-supervisor)

```
[program:tg-queue]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /var/www/my_project/daemon queue
autostart=true
autorestart=true
user=www-data
numprocs=4
redirect_stderr=true
stdout_logfile=/var/www/my_project/log/daemon.log

```

###### Пример конфигурации Systemd

[](#пример-конфигурации-systemd)

```
[Unit]
Description=Telegram queue workerr %I
After=network.target

[Service]
User=www-data
Group=www-data
ExecStart=/usr/bin/php /var/www/my_project/daemon queue
Restart=on-failure

[Install]
WantedBy=multi-user.target

```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Total

2

Last Release

1548d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/645524?v=4)[Fedor Gorsky](/maintainers/fgh151)[@fgh151](https://github.com/fgh151)

---

Top Contributors

[![fgh151](https://avatars.githubusercontent.com/u/645524?v=4)](https://github.com/fgh151 "fgh151 (18 commits)")

---

Tags

queuetelegramyandex

### Embed Badge

![Health badge](/badges/fgh151-tg-queue/health.svg)

```
[![Health](https://phpackages.com/badges/fgh151-tg-queue/health.svg)](https://phpackages.com/packages/fgh151-tg-queue)
```

###  Alternatives

[php-amqplib/php-amqplib

Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.

4.6k125.3M879](/packages/php-amqplib-php-amqplib)[ramsey/collection

A PHP library for representing and manipulating collections.

1.2k486.0M69](/packages/ramsey-collection)[queue-interop/queue-interop

Promoting the interoperability of MQs objects. Based on Java JMS

48030.5M87](/packages/queue-interop-queue-interop)[enqueue/enqueue

Message Queue Library

19820.0M56](/packages/enqueue-enqueue)[phootwork/collection

The phootwork library fills gaps in the php language and provides better solutions than the existing ones php offers.

3924.8M15](/packages/phootwork-collection)[apinstein/jqjobs

Async job manager for PHP.

3220.2k](/packages/apinstein-jqjobs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
