PHP code example of fgh151 / tg-queue

1. Go to this page and download the library: Download fgh151/tg-queue library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

fgh151 / tg-queue example snippets

injectablephp

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


$result = (fgh151\tg\QueueListener::getInstance())->push($channel, $payload)
injectablephp
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 сек)
    }
}