View Categories

Execution servers

4 min read

You need at least one active execution server to run tasks.

In this page


License models

In both cases, tasks only run on nodes flagged Is Execution Server.


Quick start

MONO license (single node)

  1. Install EAC on the host.
  2. Set the server identity in the host config: EAC_SERVER_CODE (e.g., master).
  3. In Servers → New, register the node and tick Is Execution Server and Enabled.
  4. Schedule:
    • Heartbeat (on this node by default):
      * * * * * php bin/console eac:server-status –every=3
      30 1 * * * php bin/console eac:server-status:purge --days=4
    • Scheduler loop (on this node by default):
      * * * * * php bin/console eac:scheduler (and set SCHEDULE_ENABLED=true)

MULTI license (control + slaves)

  1. Install EAC on each node.
  2. On each node, set a unique EAC_SERVER_CODE (e.g., master, slave-1, slave-2).
  3. Register every node in Servers. On the control node, tick Is Main Server. On nodes that will run jobs, tick Is Execution Server. Tick Enabled wherever applicable.
  4. Schedule on every node:
    • Heartbeat:
      * * * * * php bin/console eac:server-status --every=3
      30 1 * * * php bin/console eac:server-status:purge --days=4
  5. Schedule the scheduler loop on the Main server (recommended):
    • * * * * * php bin/console eac:scheduler with SCHEDULE_ENABLED=true
    • (Optional HA) keep a standby scheduler on another node with SCHEDULE_ENABLED=false, and flip it only if needed.
  6. Ensure job artifacts are available on all execution servers (see Replication checks in Useful commands or:
    * * * * * php bin/console eac:check-jobversion-deployment
    0 2 * * * php bin/console eac:check-jobversion-deployment --force)

Server pages

  • List — high-level view: display name, code, role badges (Current, Master), enabled state, and quick actions.
  • Show — server details + Last executions on this server. CPU/Memory graphs appear once heartbeats are flowing. If you see “No status available”,
    • your heartbeat isn’t configured or isn’t reaching the app.
    • your last executions exceed time defined in fine last server status
  • Create/Edit — the registration form (also used for updates). This is where you define Main/Execution roles.

Create/Edit: field reference

FieldPurposeRules / Tips
Server display nameHuman-readable label (shown in UI).e.g., master, fr-par-01, etl-exec-02.
CodeUnique technical identifier for this node.Must match the node’s EAC_SERVER_CODE (alphanumeric, hyphen, underscore). If they don’t match, heartbeats won’t attach to this entry.
HostBase URL used by EAC to contact/identify the node.Include scheme, e.g., https://server-domain.com
PortManagement/API/UI port for this node.e.g., 443.
Is Main ServerMarks the control node in MULTI setups.Run the scheduler here.
EnabledToggles visibility/participation of this node.If off, the node is ignored by orchestration.
Is Execution ServerAllows this node to run tasks.At least one server must have this enabled, otherwise no executions can start.

On the Show page you’ll also see: Active (heartbeat seen recently), EAC version, OS, and CPU/Memory charts.


Operational checks

  • Heartbeat present? Status appears and updates every minute once eac:server-status is scheduled.
  • Execution capable? At least one server must be Enabled and Is Execution Server.
  • Scheduler running? Ensure the scheduler loop is scheduled and SCHEDULE_ENABLED=true on the node where it runs.
  • Artifacts available? In MULTI, verify replication on all execution servers (see replication checks above).

Multi-server notes (load balancing)

  • With MULTI, tasks will run on any available Execution Server.
  • Keep replication healthy so the required job versions exist on all candidate nodes before triggers fire.
  • Use the Server Show page to see which server actually executed each run and to spot imbalances or capacity issues (CPU/Memory charts).

Troubleshooting

  • “No status available” on Show page
    • Heartbeat cron missing or failing; wrong Code (doesn’t match EAC_SERVER_CODE); firewall/TLS blocking Host:Port.
  • No tasks start
    • No server with Is Execution Server + Enabled; scheduler loop not running or SCHEDULE_ENABLED=false; task blocked by Ack; schedule not in the look-ahead window (“Active now” false).
  • Executions always on one node
    • Other nodes not marked Is Execution Server, or their artifacts aren’t replicated.
  • Version mismatch
    • Different EAC version or missing job version on some nodes; run replication checks.

See also