Фоновая обработка
Обновлено
Системный cron
Чтобы расшифровка работала без открытой CRM, добавьте в crontab пользователя сайта запуск раз в минуту:
* * * * * php /путь/к/webasyst/cli.php crm ewcrmwhisperPluginWorkerЗамените путь на корень вашей установки. Если для сайта используется отдельный PHP, укажите путь к его CLI-исполняемому файлу. В этом PHP должны быть доступны cURL, mbstring и JSON.
В настройках плагина при отсутствии свежего запуска системного обработчика выводится команда с путём вашей установки и кнопкой «Скопировать».
Для ручной проверки выполните ту же команду без расписания:
php /путь/к/webasyst/cli.php crm ewcrmwhisperPluginWorkerКоманда выводит JSON. Поле processed означает число завершённых попыток обработки в этом запуске, включая попытки с ошибкой, а не только число готовых текстов. Ответ {"locked":true} означает, что блокировка уже занята другим запуском.
Как устроена очередь
В автоматическом режиме обработчик добавляет звонки, которые:
- имеют статус завершения
FINISHEDи идентификатор записи; - длятся не меньше значения «Минимальная длительность»;
- завершены начиная с «Даты начала»;
- ещё не имеют записи в хранилище расшифровок.
За один проход автоматического отбора выбирается до 200 звонков, сначала более новые. Событие скачивания записи плагином «Билайн» от Easyweb также может поставить подходящий звонок в очередь в автоматическом режиме.
Задачи обрабатываются по одной. Приоритет имеют звонки, запрошенные сотрудником; внутри приоритета выбираются более новые задачи. Перекрывающиеся запуски ограничиваются блокировкой.
CLI-обработчик использует бюджет 240 секунд для начала новых задач. Это не жёсткое ограничение времени всего процесса: уже начатый запрос может длиться дольше в пределах своего таймаута. Для длинного звонка таймаут распознавания равен большему из «Таймаута запроса» и длительности звонка в CRM плюс 120 секунд.
Повторные попытки
При обычной ошибке первая повторная попытка откладывается на 5 минут, последующие — на 30 минут. По достижении «Максимума попыток» задача получает состояние ошибки. Реальный запуск повтора зависит от расписания обработчика и очереди.
Исключения:
- При ответе сервера распознавания HTTP 401 или 403 задача остаётся в очереди, текущий запуск останавливается, счётчик попыток не увеличивается. Исправьте «Ключ API» или доступ на стороне сервера.
- При отсутствии записи задача получает состояние «Нет записи» без автоматического повтора. После восстановления записи нажмите «Ошибка» у звонка: ручной запрос сбрасывает счётчик и возвращает задачу в очередь.
При следующем запуске обработчик возвращает в очередь задачи, которые слишком долго оставались в обработке после прерванного процесса. Готовые тексты обычный запуск не перезаписывает.
Запасной запуск из CRM
Если системный cron не отмечал запуск более 15 минут, обработчик может запускаться через механизм обслуживания звонков открытой CRM. Такой запуск обрабатывает не более одного разговора, а между запасными запусками выдерживается не менее 10 минут.
Этот механизм зависит от активности CRM. Для постоянной фоновой работы настройте системный cron.
Диагностика
Проверьте «Последний запуск» и «Счётчики очереди» в настройках. Причина ошибки задачи выводится в подсказке бейджа «Ошибка». Журнал плагина находится в wa-log/crm/plugins/ewcrmwhisper.log.
Плагин удаляет сохранённый ключ API из сообщений, которые записывает в журнал и передаёт в сообщения об ошибках. Время последнего запуска само по себе не подтверждает успешное распознавание: проверьте состояние звонка и его текст.