Files
yourpart-daemon/docs/FALUKANT_WORKER_SCHEDULE_SOCKET.md

1.7 KiB

Worker-Schedules per WebSocket

Dieses Feature stellt eine Übersicht bereit, wann Worker-Tasks voraussichtlich wieder laufen.

Zugriffsschutz

Der Zugriff ist nur erlaubt für Nutzer mit mindestens einem dieser Rechte:

  • admin
  • worker_schedule_read

Migration für das neue Recht:

  • migrations/018_worker_schedule_socket_right.sql

WebSocket-Events

Voraussetzung: Der Client hat vorher setUserId gesendet.

1) Übersicht

Request:

{
  "event": "getWorkerSchedules",
  "data": {}
}

Response:

{
  "event": "getWorkerSchedulesResponse",
  "ok": true,
  "generated_at": 1715157600,
  "schedules": [
    {
      "worker": "DirectorWorker",
      "tasks": [
        {
          "task": "salary_payout",
          "cadence_seconds": 86400,
          "cadence_label": "86400s interval",
          "next_run_latest_ts": 1715244000,
          "next_run_latest_in_seconds": 86400
        }
      ]
    }
  ]
}

Hinweis: Sekündliche/minütliche Tasks sind absichtlich nicht enthalten.

2) Detaillierte Übersicht

Request:

{
  "event": "getWorkerSchedulesDetailed",
  "data": {}
}

Response (zusätzlich Live-Status aus dem Worker-Runtime-Registry):

{
  "event": "getWorkerSchedulesDetailedResponse",
  "ok": true,
  "generated_at": 1715157600,
  "schedules": [
    {
      "worker": "DirectorWorker",
      "running_worker": true,
      "running_watchdog": true,
      "current_step": "DirectorWorker: pay_salary",
      "last_step_change_ts": 1715157000,
      "tasks": []
    }
  ]
}

Rechteprüfung (technisch)

Der Daemon akzeptiert sowohl:

  • setUserId = community.user.id
  • setUserId = falukant_data.falukant_user.id

In beiden Fällen wird auf community.user_right + "type".user_right geprüft.