Introduce a soft, log-only per-task time budget (jobs_task_max_seconds)
separate from the existing web request budget (jobs_web_max_seconds),
since PHP cannot preempt a running task mid-execution.
- Config: add taskMaxSeconds default (30s) to app/Config/Jobs.php
- Controller: validate and persist task_max_seconds in
Jobs::postSaveSettings
- BoundedTaskRunner: accept taskMaxSeconds, measure task runtime via
microtime, log a warning when a task exceeds the threshold
- JobRunner: read jobs_task_max_seconds from config and pass it to
BoundedTaskRunner
- Migration: add AddJobsTaskMaxSecondsConfigKey to seed default
app_config value
- Language: add en strings for label, validation message, and
enabled/disabled tooltips
- View: add task_max_seconds form field to settings_config.php,
wired to same web-mode enable/disable toggle as web_max_seconds
- Tests: update JobsControllerTest to cover new field in save/
validation scenarios
Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>