Skip to content

v3.2

Choose a tag to compare

@njoubert-cleverage njoubert-cleverage released this 13 Oct 15:12
· 109 commits to main since this release
d664410

Changes

  • #142 Scheduler: a schedule can be disabled (ProcessSchedule::$enabled, default true, switch in the schedules list; Version20261013120000 migration adding process_schedule.enabled, the existing schedules are enabled). Disabled schedules are not loaded by the scheduler_cron worker; when a schedule is due, CronProcessMessageHandler reads it again from the database (new optional $repository and $logger arguments, ProcessScheduleRepository::findFresh()), so that a schedule disabled or deleted after the worker has started is not run, and its current input and context are used. Enabling a schedule again still requires restarting the worker. Add documentation and tests.
  • #143 Stop a running process execution from the UI: "Stop the process" action (POST, with confirmation) on the started executions, recording a stop request (ProcessExecution::$stopRequestedAt). The new ProcessExecutionStopChecker (a stop checker of cleverage/process-bundle#266, tag cleverage_process.stop_checker) reads it with DBAL before the task executions, at most every process_execution.heartbeat_interval seconds (new bundle configuration, default 5): the process stops before its next task execution, with the new stopped status (ProcessExecutionStatus::Stopped, "Stop requested" displayed until then). New stopped notification status (NotificationTrigger::Stopped, not notified by default). Requires cleverage/process-bundle ^5.3. Add documentation and tests.
  • #144 Detect the process executions whose process has been killed: the ProcessExecutionStopChecker updates the heartbeat of the running execution (ProcessExecution::$heartbeatAt); a started execution without activity for more than process_execution.stale_after seconds (new bundle configuration, default 900) is displayed as "Not responding", and can be marked as failed ("Mark as failed" action, POST, with confirmation; its end date is its last activity; its process is not stopped). It can still be stopped: a process blocked in a long task call stops when the call returns. New ProcessExecutionCrudController optional $staleAfter constructor argument.
  • #143 #144 Version20261014120000 migration adding process_execution.stop_requested_at and process_execution.heartbeat_at (nullable).
  • #147 Log retention: new cleverage:ui-process:purge-logs command (with --dry-run) deleting the log records (log_record, by batches) older than logs.database_max_days days and the log files (<code>/<uuid>.log) last modified more than logs.file_max_days days ago (new bundle configuration, default null: kept), both overridable by the new logs option of each process (ProcessConfigurationsManager::getLogsOptions()). The process executions are kept. Add documentation (including how to give the space back to the database after the first purge) and tests.