- audiorecords вместо transcribe_jobs: приложения (texts, structures, recognitions, record_events, topics) живут своими коллекциями, ссылки на исходник и на приведённую копию перестали переставляться - рубеж называет достигнутое, отказ стал признаком остановки с причиной, а сторожей стало двое: число отказов и время в рубеже - воркеры потеряли специализацию, их число задаётся [pipeline] workers, шаг выбирается по рубежу, а захват отдаёт идентификатор и признак захвата
44 lines
2.6 KiB
Go
44 lines
2.6 KiB
Go
package entity
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
// Где лежит копия файла. Поле названо `location`, а не `storage`: последним
|
||
// словом зовут само хранилище, и третий смысл у одного слова развёл бы по
|
||
// разным вещам запись о файле и хранилище, в котором она лежит.
|
||
const (
|
||
LocationLocal = "local"
|
||
LocationS3 = "s3"
|
||
)
|
||
|
||
// MaxRecordSize — потолок размера одного файла записи. Выведен из расчётного
|
||
// потолка записи в шесть часов с запасом на видео, а не из замера.
|
||
//
|
||
// Число нужно назвать **явно** в двух местах сразу: у поля файла в хранилище
|
||
// нулевой потолок значит не «без предела», а умолчание библиотеки в 5 МиБ, а у
|
||
// тела запроса приёма умолчание роутера отсекало бы запись раньше, чем она
|
||
// дойдёт до обработчика — без строки в журнале приёма.
|
||
const MaxRecordSize int64 = 8 << 30 // 8 ГиБ
|
||
|
||
// File — одна физическая копия записи. Их ровно две: принятая и приведённая к
|
||
// рабочему формату. Копия во внешнем хранилище файлом записи не считается — она
|
||
// существует только потому, что провайдер читает аудио по адресу, и её ключ
|
||
// живёт в строке попытки распознавания.
|
||
type File struct {
|
||
Id string
|
||
Location string
|
||
// FileName — имя, под которым файл лежит: имя задаёт сервис. Своего суффикса
|
||
// хранилище к заданному имени не дописывает: суффикс появляется только у
|
||
// имён, которые оно строит само из имени отправителя, а это умолчание не
|
||
// применяется.
|
||
FileName string
|
||
Size int64
|
||
// Format — расширение без точки, приведённое к нижнему регистру. Наружу оно
|
||
// выходит только через метку метрики, приведённую к перечню известных.
|
||
Format string
|
||
// DurationMs — длительность записи, если её удалось прочитать.
|
||
DurationMs int64
|
||
CreatedAt time.Time
|
||
}
|