Skip to content

korzhenevski/playfm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tracefm

TODO:

обработка ошибок платформы для редиса делаем две попытки и кидаем исключение для монги две попытки реконнекта для зеромкью таймаут на send/receive 1 секунда

воркеры шлют телеметрию на менеджер.

  • пид, память
  • загрузка cpu процессом и общая
  • аптайм
  • утилизация канала: трафик от задач
  • кол-во задач и трекинг последних эвентов (event_type_at)

message WorkerTelemetry { required int32 pid = 1; required float cpu = 2; required float process_cpu; required int64 memory_usage; required int64 process_memory_usage; required int32 memory_usage; required int32 uptime; optional int32 traffic_in; message Job { required int32 job_id; } repeated Job jobs; }

менеджер хранит состояние в файле. снепшот уходит раз в 5 сек при налиции изменений

message ManagerStream { required int32 id = 1; required int32 station_id = 2; enum State { PERSISTENT = 1; ONDEMAND = 2; } required State state = 3 [default=ONDEMAND]; optional int32 record_id;

record_id выставляется из-вне запросом recordStream(stream_id, station_id, record_id) }

таким образом, после рестарта, менеджер всегда знает что ему делать с потоками

ещё при сохранении трека, надо делать find, и отдельно в stream_title записывать (stream_id, station_id, track_id) локальный кеш хранит stream_title -> track_id если нет, ищем в tracks если и там нет, делаем track_build после пишем в stream_title и сохраняем в кеш отдельный кеш против дублей

RadioVoice Platform ™

About

RadioVoice Platform™

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors