kw within
Контекстное слово — суффиксы цепочки (§8.4)
Список слов: §1.4
Синтаксис
Suffix = "within" Binary | "retry" Binary [ "on" Type ] [ "backoff" Binary ] ;Грамматика: Прил. A
Определяется в
- 8.4 Цепочки — Цепочка связывает асинхронные шаги так, что выполняется либо вся цепочка, либо возвращается первая необработанная ошибка.
- 12.6 Распределённые вычисления — cluster.shards(src) — для шардированных таблиц и акторов; map выполняется рядом с данными, функция ДОЛЖНА быть передаваемой (§7.3).
- 1.2 Завершение инструкций — Инструкция завершается ; или переводом строки.
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
- 5.2 Приоритет и ассоциативность — Приоритет и ассоциативность
- 8.6 Отмена и дедлайны — Отмена кооперативная
Примеры
let page = Users.get(id)
-> (Orders.recent(it.id), Recs.for(it.id))
-> (orders, recs) => Page{ orders, recs }
~> Audit.log("page", id)
!> Timeout => Page.empty()
within PAGE_DEADLINE
retry 2
let html = await pagelet byRegion = cluster.shards(db.Order)
.map(o => (o.region, o.total)) // выполняется на владельцах шардов
.reduceBy(.0, (a, b) => a + b) // частичная агрегация, затем слияние
within REPORT_DEADLINE
cluster.leader("nightly-report") { every(REPORT_PERIOD) { buildReport() } }
cluster.lock("user:{uid}", ttl: LOCK_TTL) { migrateUser(uid) }— 12.6 Распределённые вычисления
Связанные диагностики
it-outside-chain, chained-comparison