Как автоматически очищать завершившиеся конференции
В стандартном функционале сервера отсутствует возможность автоматически удалять завершившиеся конференции. Но это можно сделать с помощью периодически запускаемой программы, использующей TrueConf Server API.
О том, что представляет собой API сервера и как с ним работать, подробно рассказано в статье “Как начать работу с TrueConf API”.
Постановка задачи
Пусть у вас на сервере проходит большое количество запланированных на разное время конференций, и требуется периодически удалять те из них, после проведения которых прошёл определённый период времени, например, один месяц.
Следует принять во внимание, что нельзя просто удалить все мероприятия со статусом “остановлено”, потому что его имеют все неактивные конференции, независимо от того, запускались ли они хоть раз до этого. Более того, надо не учитывать те из них, у которых настроен периодический запуск, например, раз в неделю, ведь они ещё могут быть необходимы в дальнейшем.
Таким образом, надо удалить запланированные конференции с одноразовым типом запуска, после завершения которых прошло указанное количества суток.
Ознакомиться с примером кода с поддержкой описанного алгоритма можно на нашем GitHub.
Шаг 1. Вычисление даты и времени для удаления
Вычислите дату, старше которой требуется удалить конференции. Для этого отнимите необходимое количество дней от текущей даты. Полученный результат требуется перевести в формат Unix Timestamp. Например, если надо удалить конференции, завершившиеся до 1.06.2021 00:00 МСК, то получим число 1622494800.
Шаг 2. Получение списка конференций
Получите список конференций с помощью GET-метода Get Conference List, указав дополнительный параметр state=stopped
(статус – остановлена).
В ответ вы получите JSON со списком объектов Conference.
Шаг 3. Поиск конференций для удаления
У каждой конференции из полученного списка:
- Проверьте тип запуска в объекте Schedule (должен быть
"type":1
– одноразовый запуск). - Если время окончания конференции (время старта
start_time
плюс продолжительностьduration
) меньше полученного на шаге 1 значения, то запомните её ID и переходите к следующему шагу.
Шаг 4. Удаление конференции
Удалите конференцию с помощью DELETE-запроса Delete Conference, указав её ID.
Если вы создаёте конференции с помощью API-запроса Create Conference и желаете удалить не все завершившиеся конференции, вы можете уменьшить размер списка из шага 2. Для этого создавайте мероприятия, требующие удаления, с определённым тегом. Например, задавая параметр "tags":["delete"]
. Тогда на 2 шаге алгоритма вы можете использовать параметр tag=delete
для уточнения списка завершившихся конференций.