Time-based job runner for Gingee apps (declarative schedules in `app.json`).
Server gate: `gingee.json` → `scheduler.enabled` (default
false).
Multi-node: set scheduler.coordination.driver: "redis" and configure
sibling scheduler.redis (same shape as queue.redis / cache.redis) so only one
node runs each occurrence (tick locks) or only the elected leader runs jobs
(strategy leader). Without coordination, enable the scheduler on at most one
node for script/url targets (or use queue targets with redis queue).
App config: `app.json` → `schedules` array. Each job needs a unique `name`, a
`cron` expression, and a `target` of type script, url, or
queue.
Permissions: App must be granted scheduler to register any jobs.
URL targets also require httpclient; queue targets also require queue.
Defaults: overlap = skip, misfire = skip, timezone from job or server default (UTC).
This module is engine-internal (not for sandboxed app require in v1).- Description:
- Time-based job runner for Gingee apps (declarative schedules in `app.json`).
Server gate: `gingee.json` → `scheduler.enabled` (default
false). Multi-node: setscheduler.coordination.driver: "redis"and configure siblingscheduler.redis(same shape as queue.redis / cache.redis) so only one node runs each occurrence (tick locks) or only the elected leader runs jobs (strategyleader). Without coordination, enable the scheduler on at most one node for script/url targets (or use queue targets with redis queue). App config: `app.json` → `schedules` array. Each job needs a unique `name`, a `cron` expression, and a `target` of typescript,url, orqueue. Permissions: App must be grantedschedulerto register any jobs. URL targets also requirehttpclient; queue targets also requirequeue. Defaults: overlap = skip, misfire = skip, timezone from job or server default (UTC). This module is engine-internal (not for sandboxed apprequirein v1).
- Time-based job runner for Gingee apps (declarative schedules in `app.json`).
Server gate: `gingee.json` → `scheduler.enabled` (default
Members
(inner, constant) appJobs :Map.<string, Map.<string, object>>
- Description:
- appName → Map(jobName → jobRuntime)
appName → Map(jobName → jobRuntime)
Type:
- Map.<string, Map.<string, object>>
(inner) coordinator :object|null
Type:
- object | null
(inner) globalConfigRef :object|null
Type:
- object | null
(inner) serverConfig :Object
Type:
- Object
(inner) serverLogger :object|null
Type:
- object | null
Methods
(inner) getAdminStatus() → {object}
- Description:
- Admin/status snapshot for Glade.
Returns:
- Type
- object
(inner) initServer(config, logger, globalConfig)
- Description:
- Initialize server-level scheduler settings.
Parameters:
| Name | Type | Description |
|---|---|---|
config |
object | null | undefined | from gingee.json → scheduler |
logger |
object | |
globalConfig |
object | full server config (for box/privileged apps) |
(inner) listJobs(optsopt) → {Array.<object>}
- Description:
- List registered jobs (tests / Glade admin UI).
Parameters:
| Name | Type | Attributes | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
opts |
object |
<optional> |
Properties
|
Returns:
- Type
- Array.<object>
(async, inner) registerApp(app)
- Description:
- Register schedules for one app from app.config.schedules. No-op if server scheduler is disabled or app has no schedules.
Parameters:
| Name | Type | Description |
|---|---|---|
app |
object |
(async, inner) reinitApp(appName, app)
- Description:
- Re-read app schedules after reload.
Parameters:
| Name | Type | Description |
|---|---|---|
appName |
string | |
app |
object |
(async, inner) runNow(appName, jobName) → {Promise.<object>}
- Description:
- Force-run a registered job (tests / Glade "Run now"). Bypasses multi-node coordination so an operator can always trigger a run.
Parameters:
| Name | Type | Description |
|---|---|---|
appName |
string | |
jobName |
string |
Returns:
result status snapshot
- Type
- Promise.<object>
(inner) shutdown()
- Description:
- Stop all scheduled jobs (server shutdown).
(inner) unregisterApp(appName)
- Description:
- Stop and remove all jobs for an app.
Parameters:
| Name | Type | Description |
|---|---|---|
appName |
string |