79 lines
4.5 KiB
JSON
79 lines
4.5 KiB
JSON
{
|
|
"changelog": "NEW - system kolejki zadań cron (DB), priorytetowe przetwarzanie, retry/backoff, ochrona endpointu cron",
|
|
"version": "0.324",
|
|
"files": {
|
|
"added": [
|
|
"autoload/Domain/CronJob/CronJobProcessor.php",
|
|
"autoload/Domain/CronJob/CronJobRepository.php",
|
|
"autoload/Domain/CronJob/CronJobType.php"
|
|
],
|
|
"deleted": [
|
|
"autoload/.DS_Store",
|
|
"autoload/front/.DS_Store",
|
|
"logs/2024-01-05-order-set-as-paid.txt",
|
|
"logs/2024-08-20-order-set-as-paid.txt",
|
|
"logs/apilo.txt",
|
|
"logs/logs-db-2024-08-31.log",
|
|
"templates/.DS_Store"
|
|
],
|
|
"modified": [
|
|
"autoload/Domain/Order/OrderAdminService.php",
|
|
"autoload/admin/App.php",
|
|
"autoload/api/ApiRouter.php",
|
|
"autoload/front/App.php",
|
|
"cron.php"
|
|
]
|
|
},
|
|
"checksum_zip": "sha256:63237e6bdb2ed2c2632cebb45431b26ecd5717b129aa2180540ebce0c3bff77f",
|
|
"sql": [
|
|
"-- System kolejki zadań cron",
|
|
"-- Wersja: 0.324",
|
|
"CREATE TABLE IF NOT EXISTS pp_cron_jobs (",
|
|
" id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,",
|
|
" job_type VARCHAR(50) NOT NULL,",
|
|
" status ENUM(\u0027pending\u0027,\u0027processing\u0027,\u0027completed\u0027,\u0027failed\u0027,\u0027cancelled\u0027) NOT NULL DEFAULT \u0027pending\u0027,",
|
|
" priority TINYINT UNSIGNED NOT NULL DEFAULT 100,",
|
|
" payload TEXT NULL,",
|
|
" result TEXT NULL,",
|
|
" attempts SMALLINT UNSIGNED NOT NULL DEFAULT 0,",
|
|
" max_attempts SMALLINT UNSIGNED NOT NULL DEFAULT 10,",
|
|
" last_error VARCHAR(500) NULL,",
|
|
" scheduled_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,",
|
|
" started_at DATETIME NULL,",
|
|
" completed_at DATETIME NULL,",
|
|
" created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,",
|
|
" updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,",
|
|
" INDEX idx_status_priority_scheduled (status, priority, scheduled_at),",
|
|
" INDEX idx_job_type (job_type),",
|
|
" INDEX idx_status (status)",
|
|
") ENGINE=InnoDB DEFAULT CHARSET=utf8;",
|
|
"CREATE TABLE IF NOT EXISTS pp_cron_schedules (",
|
|
" id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,",
|
|
" job_type VARCHAR(50) NOT NULL UNIQUE,",
|
|
" interval_seconds INT UNSIGNED NOT NULL,",
|
|
" priority TINYINT UNSIGNED NOT NULL DEFAULT 100,",
|
|
" max_attempts SMALLINT UNSIGNED NOT NULL DEFAULT 3,",
|
|
" payload TEXT NULL,",
|
|
" enabled TINYINT(1) NOT NULL DEFAULT 1,",
|
|
" last_run_at DATETIME NULL,",
|
|
" next_run_at DATETIME NULL,",
|
|
" created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,",
|
|
" INDEX idx_enabled_next_run (enabled, next_run_at)",
|
|
") ENGINE=InnoDB DEFAULT CHARSET=utf8;",
|
|
"-- Harmonogramy zadań",
|
|
"INSERT INTO pp_cron_schedules (job_type, interval_seconds, priority, max_attempts) VALUES",
|
|
"(\u0027apilo_token_keepalive\u0027, 240, 10, 3),",
|
|
"(\u0027apilo_send_order\u0027, 60, 40, 10),",
|
|
"(\u0027apilo_product_sync\u0027, 600, 100, 3),",
|
|
"(\u0027apilo_pricelist_sync\u0027, 3600, 100, 3),",
|
|
"(\u0027apilo_status_poll\u0027, 600, 100, 3),",
|
|
"(\u0027price_history\u0027, 86400, 100, 3),",
|
|
"(\u0027order_analysis\u0027, 600, 100, 3),",
|
|
"(\u0027trustmate_invitation\u0027, 600, 200, 3),",
|
|
"(\u0027google_xml_feed\u0027, 3600, 200, 3);"
|
|
],
|
|
"date": "2026-02-27",
|
|
"directories_deleted": [
|
|
|
|
]
|
|
} |