mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-09-24 03:35:05 -04:00
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>
19 lines
432 B
PHP
19 lines
432 B
PHP
<?php
|
|
|
|
namespace App\Database\Migrations;
|
|
|
|
use CodeIgniter\Database\Migration;
|
|
|
|
class AddJobsTaskMaxSecondsConfigKey extends Migration
|
|
{
|
|
public function up(): void
|
|
{
|
|
$this->db->table('app_config')->ignore(true)->insert(['key' => 'jobs_task_max_seconds', 'value' => '30']);
|
|
}
|
|
|
|
public function down(): void
|
|
{
|
|
$this->db->table('app_config')->where('key', 'jobs_task_max_seconds')->delete();
|
|
}
|
|
}
|