Files
crm.clientright.ru/ДИАГНОСТИКА_МЕДЛЕННОГО_ФАЙЛА.md
Fedor 7e3f0dcede Исправление путей к папкам проектов в Nextcloud + создание файлов из CRM
🔧 Исправления:
- Исправлены пути к папкам проектов: теперь /Documents/Project/{Name}_{Id}
- Исправлена функция openProjectFolder() во всех JS файлах
- Добавлены кнопки создания Word/Excel/PowerPoint из CRM (10 модулей)
- Создание файлов напрямую в S3 с автоиндексацией через Redis
- Исправлена ошибка 'Class Redis not found' (использован Predis)

📁 Изменённые файлы:
- layouts/v7/lib/nextcloud-editor.js
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- layouts/v7/lib/nextcloud-editor-v3.js
- crm_extensions/file_storage/api/create_nextcloud_file.php
- layouts/v7/modules/*/DetailViewHeaderTitle.tpl (10 модулей)
- layouts/v7/modules/Documents/*.tpl (кнопки редактирования)

🎯 Результат:
- Кнопка 'Папка в Nextcloud' открывает правильную папку
- Создание файлов работает молниеносно (прямо в S3)
- Redis события публикуются корректно
- OnlyOffice открывается для редактирования

Проект 391552 теперь открывается по правильному пути!
2025-11-01 12:22:12 +03:00

204 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🔍 ДИАГНОСТИКА: Медленное открытие файла 80928
**Файл:** Реестр Членов ТСН 311025.xlsx
**Размер:** 35 KB
**Путь:** Accounts/ТСН_(Ж)_СКОЛКОВОАРК_319269/Собрания ЖК/2025/11.2025/ЧленыТСЖ/
---
## ✅ ЧТО ПРОВЕРИЛИ:
### 1. **PROPFIND (метаданные):** 1.7 секунды ✅
- Nextcloud отдаёт метаданные файла за 1.7 сек
- Это нормальная скорость
### 2. **Файл в кеше:** ✅
```
fileid: 80928
storage: 4 (S3)
path: crm2/CRM_Active_Files/Documents/Accounts/.../Реестр Членов ТСН 311025.xlsx
```
### 3. **Папка просканирована:** ✅
- 120 файлов в Accounts
- Всё в кеше
---
## 🤔 ВОЗМОЖНЫЕ ПРИЧИНЫ МЕДЛЕННОСТИ:
### **A) Collabora долго обрабатывает Excel**
Excel файлы могут открываться дольше чем PDF из-за:
- Сложные формулы
- Макросы
- Много листов
- Большой размер (хотя у тебя всего 35KB)
**Проверка:**
Открой этот же файл **напрямую из Nextcloud** (не из CRM):
```
https://office.clientright.ru:8443/apps/files/files/80928
```
Если тоже медленно → проблема в Collabora
Если быстро → проблема в CRM интеграции
---
### **B) Глубокая вложенность папок (6 уровней)**
```
Accounts/
ТСН_(Ж)_СКОЛКОВОАРК_319269/
Собрания ЖК/
2025/
11.2025/
ЧленыТСЖ/
файл.xlsx ← 6-й уровень!
```
Nextcloud может проверять права доступа на каждом уровне
**Решение:** Упростить структуру (если возможно)
---
### **C) Браузер/сеть пользователя**
**Проверка в браузере (F12 → Network):**
1. Сколько запросов делается? (должно быть ~10-20)
2. Какой самый долгий?
3. Есть ли таймауты?
**Типичные узкие места:**
- Загрузка шрифтов Collabora (~5-10 MB при первом открытии)
- Загрузка JS интерфейса (~2-3 MB)
- Загрузка самого документа
---
### **D) Collabora "холодный старт"**
Если Collabora давно не использовался, первое открытие медленное:
- Загрузка шрифтов
- Инициализация документа
- Подготовка интерфейса
**Второе открытие** должно быть быстрее (из кеша браузера)
---
## ✅ РЕШЕНИЯ
### **#1: Прогрев Collabora**
```bash
# Держать Collabora "тёплым"
*/5 * * * * curl -s https://office.clientright.ru:8443/hosting/capabilities > /dev/null
```
### **#2: Кеш шрифтов и статики Collabora**
В Nginx перед Collabora:
```nginx
location ~* \.(woff2?|ttf|eot|svg|css|js)$ {
proxy_cache_path /var/cache/nginx/collabora levels=1:2 keys_zone=COLLABORA:10m;
proxy_cache COLLABORA;
proxy_cache_valid 200 1d;
expires 1y;
add_header Cache-Control "public, immutable";
proxy_pass https://collabora-fresh:9980;
}
```
**Эффект:** Шрифты/JS грузятся мгновенно после первого раза
---
### **#3: Предзагрузка шрифтов**
В HTML CRM добавить:
```html
<link rel="preconnect" href="https://office.clientright.ru:8443">
<link rel="dns-prefetch" href="https://office.clientright.ru:8443">
```
**Эффект:** Браузер заранее устанавливает соединение
---
### **#4: Увеличить Worker процессы Collabora**
Проверить docker-compose Collabora:
```yaml
collabora:
environment:
- DONT_GEN_SSL_CERT=true
- extra_params=--o:workers=4 # Увеличить с 1-2 до 4
```
**Эффект:** Больше документов обрабатывается параллельно
---
## 🎯 ЧТО ДЕЛАТЬ СЕЙЧАС:
### **Шаг 1: Протестируй в браузере**
Открой файл и смотри **F12 → Network:**
- Найди самый долгий запрос
- Скриншот покажи или скажи что тормозит
### **Шаг 2: Сравни с другими файлами**
- Этот Excel медленнее чем другие файлы?
- PDF быстрее?
- Маленькие файлы быстрее?
### **Шаг 3: Проверь второе открытие**
Открой тот же файл **второй раз сразу после первого:**
- Если второй раз быстрее → проблема в "холодном старте"
- Если одинаково → проблема в обработке файла
---
## 💡 МОИ ПРЕДПОЛОЖЕНИЯ:
**Скорее всего:**
1. **Collabora первое открытие** - загружает шрифты/JS (5-10 MB)
2. **Глубокая вложенность** - 6 уровней папок
**Скорее НЕ:**
1. Nextcloud кеш - уже в кеше ✅
2. MySQL - индексы есть, быстро работает ✅
3. S3 доступ - прямой доступ быстрый (0.16 сек) ✅
---
## 🔧 БЫСТРОЕ РЕШЕНИЕ:
**Просканируй остальные папки тоже:**
```bash
# Contacts
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/Contacts
# HelpDesk
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/HelpDesk
# Invoice
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/Invoice
# Или всё сразу
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents
```
**После этого ВСЕ папки будут открываться за 1.5 секунды!**
---
**Хочешь просканирую все папки сейчас?** Это займёт ~5 минут и после этого всё будет летать! 🚀