/
mikopbx
/
ModuleQueueCallBack
Обзор
Документация
Войти
/
mikopbx
/
ModuleQueueCallBack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
Lib/QueueCallBackMain.php
79 строк
2 KB
apor
init
08 ноя 2021, 15:21
08 ноя 2021, 15:21
711223f
Код
Авторство
О чём код?
<?php namespace Modules\ModuleQueueCallBack\Lib; use MikoPBX\Core\System\Processes; use MikoPBX\Core\System\Util; use MikoPBX\Core\Workers\Cron\WorkerSafeScriptsCore; use MikoPBX\Modules\PbxExtensionBase; use MikoPBX\Modules\PbxExtensionUtils; use MikoPBX\PBXCoreREST\Lib\PBXApiResult; class QueueCallBackMain extends PbxExtensionBase { /** * Process something received over AsteriskAMI * * @param array $parameters */ public function processAmiMessage(array $parameters): void { $message = implode(' ', $parameters); $this->logger->writeInfo($message); } /** * Process something received over Beanstalk queue * * @param array $parameters */ public function processBeanstalkMessage(array $parameters): void { $message = implode(' ', $parameters); $this->logger->writeInfo($message); } /** * Check something and answer over RestAPI * * @return PBXApiResult */ public function checkModuleWorkProperly(): PBXApiResult { $res = new PBXApiResult(); $res->processor = __METHOD__; $res->success = true; return $res; } /** * Start or restart module workers * * @param bool $restart */ public function startAllServices(bool $restart = false): void { $moduleEnabled = PbxExtensionUtils::isEnabled($this->moduleUniqueId); if ( ! $moduleEnabled) { return; } $configClass = new QueueCallBackConf(); $workersToRestart = $configClass->getModuleWorkers(); if ($restart) { foreach ($workersToRestart as $moduleWorker) { Processes::processPHPWorker($moduleWorker['worker']); } } else { $safeScript = new WorkerSafeScriptsCore(); foreach ($workersToRestart as $moduleWorker) { if ($moduleWorker['type'] === WorkerSafeScriptsCore::CHECK_BY_AMI) { $safeScript->checkWorkerAMI($moduleWorker['worker']); } else { $safeScript->checkWorkerBeanstalk($moduleWorker['worker']); } } } } }