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/ */
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 сек)
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.