@trayai/helix-sdk 1.13.0 → 1.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +5 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,14 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
8
8
|
The SDK and [`@trayai/helix-cli`](https://www.npmjs.com/package/@trayai/helix-cli) are
|
|
9
9
|
released together and share a version — install matching versions.
|
|
10
10
|
|
|
11
|
+
## 1.13.1
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Documented the 15-minute handler time limit for scheduled functions and
|
|
16
|
+
`ctx.callFunctionAsync` targets (previously documented as 180 seconds), and that a failed
|
|
17
|
+
run is retried about a minute later rather than five.
|
|
18
|
+
|
|
11
19
|
## 1.9.0
|
|
12
20
|
|
|
13
21
|
### Added
|
package/README.md
CHANGED
|
@@ -256,10 +256,10 @@ Things to know:
|
|
|
256
256
|
- Files and directories starting with `_` below `_scheduled/` are treated as helpers, not schedules — the only files that belong in the directory besides schedule definitions.
|
|
257
257
|
- `getContext()` works inside schedule handlers; shared code can detect a scheduled run by checking for `ctx.trigger`.
|
|
258
258
|
|
|
259
|
-
Limits — schedules run in the same deployed runtime as HTTP functions
|
|
259
|
+
Limits — schedules run in the same deployed runtime as HTTP functions but get a longer time limit:
|
|
260
260
|
|
|
261
|
-
- **Handler time limit:
|
|
262
|
-
- **Delivery is at-least-once.** A failed run — a thrown error, a timed-out handler, or an infrastructure failure — is retried once
|
|
261
|
+
- **Handler time limit: 15 minutes.** A run still going at the limit is killed and counts as failed. Work that can't reliably finish in time should be split across runs — persist progress (for example in `ctx.kv()`) and continue on the next fire.
|
|
262
|
+
- **Delivery is at-least-once.** A failed run — a thrown error, a timed-out handler, or an infrastructure failure — is retried once, usually about a minute later, then dropped. Write handlers to be idempotent: a retry re-runs the whole handler with the same `ctx.trigger.scheduledAt`.
|
|
263
263
|
- **Highest frequency is once per minute** — 5-field cron has minute granularity.
|
|
264
264
|
- **Memory is managed by the platform** and is not configurable per function.
|
|
265
265
|
- Fires are scheduled for the exact cron minute, but execution can start late under load or on a cold start — compare `ctx.trigger.scheduledAt` (intended) with `ctx.trigger.firedAt` (actual) when lateness matters.
|
|
@@ -297,6 +297,8 @@ Things to know:
|
|
|
297
297
|
|
|
298
298
|
- **Fire-and-forget only.** `callFunctionAsync` resolves once the call is accepted, not once the
|
|
299
299
|
target runs — there is no result, status, or execution id to get back.
|
|
300
|
+
- **15-minute time limit.** The target runs with the same 15-minute handler time limit as a
|
|
301
|
+
scheduled function; a run still going at the limit is killed and counts as failed.
|
|
300
302
|
- **Chaining is capped at two hops.** A normal (HTTP or scheduled) execution can call once; the
|
|
301
303
|
execution it starts can call once more; a third hop is refused.
|
|
302
304
|
- **The target must accept `POST`.** The call always dispatches as `POST`, regardless of the
|