Kötegelt műveletek az Abilities API-ban
A 200 webhelynél nagyobb műveletek sorba állítása, az azonnali és a sorba állított válasz, a feladat állapotának lekérdezése és a hibakezelés.
A 200-nál több webhelyet érintő műveletek automatikusan háttérfeladatként, sorba állítva futnak. Ez megelőzi az időtúllépést, és a nagy műveleteknél követhető az előrehaladás.
A kötegelési küszöb
Szekció neve “A kötegelési küszöb”Az alapértelmezett küszöb 200 webhely. A küszöb alatti műveletek szinkron futnak, és azonnal visszaadják az eredményt. A küszöböt a mainwp_abilities_batch_threshold szűrővel módosíthatod:
// Alapérték: 200 webhely$threshold = apply_filters( 'mainwp_abilities_batch_threshold', 200 );Érintett képességek
Szekció neve “Érintett képességek”Ezek a képességek támogatják a sorba állítást:
| Képesség | Mit csinál |
|---|---|
mainwp/sync-sites-v1 |
Több webhely szinkronizálása |
mainwp/run-updates-v1 |
Frissítések végrehajtása több webhelyen |
mainwp/update-all-v1 |
Az összes frissítés alkalmazása |
mainwp/reconnect-sites-v1 |
Kötegelt újracsatlakoztatás |
mainwp/disconnect-sites-v1 |
Kötegelt kapcsolatbontás |
mainwp/check-sites-v1 |
Kötegelt elérhetőség-ellenőrzés |
mainwp/suspend-sites-v1 |
Kötegelt felfüggesztés |
Frissítések megerősítése és jogosultságai
Szekció neve “Frissítések megerősítése és jogosultságai”A run-updates-v1 és az update-all-v1 műveletet a 6.3-tól előbb dry_run: true értékkel tekintsd meg, majd az átnézett kijelölést küldd el confirm: true értékkel. Az előnézet nem állít sorba frissítési feladatot. A megerősítő jelzőkről és a frissítési tiltásokról a Frissítések képességei fejezet szól.
A sorba állított feladatok a kérést indító felhasználó jogosultságaival futnak. A MainWP a frissítések végrehajtása előtt újra ellenőrzi a webhelyhozzáférést, a műveleti jogokat és a vonatkozó frissítési tiltásokat. Ha a hozzáférés a sorba állítás után megváltozik, az újrapróbálás előtt nézd át a feladat hibáit és a kihagyott elemeket. Az egyes eredményeket akkor is ellenőrizd, ha a feladat állapota completed.
Válaszminták
Szekció neve “Válaszminták”Azonnali válasz (legfeljebb 200 webhely)
Szekció neve “Azonnali válasz (legfeljebb 200 webhely)”{ "queued": false, "synced": [ {"id": 1, "url": "https://example.com", "name": "1. webhely"} ], "errors": [], "total_synced": 1, "total_errors": 0}Sorba állított válasz (200-nál több webhely)
Szekció neve “Sorba állított válasz (200-nál több webhely)”{ "queued": true, "job_id": "sync_abc123def456", "status_url": "https://a-te-vezerlopultod.hu/wp-json/mainwp/v2/jobs/sync_abc123def456", "sites_queued": 350}mainwp/get-batch-job-status-v1
Szekció neve “mainwp/get-batch-job-status-v1”Egy sorba állított kötegelt művelet aktuális állapotát adja vissza. Csak olvas, GET.
curl -G -u "admin:xxxx" \ --data-urlencode 'input_json={"job_id":"sync_abc123def456"}' \ "https://a-te-vezerlopultod.hu/wp-json/wp-abilities/v1/abilities/mainwp/get-batch-job-status-v1/run"| Név | Típus | Kötelező | Leírás |
|---|---|---|---|
job_id |
szöveg | igen | A sorba állított művelet feladatazonosítója |
A válasz:
{ "job_id": "sync_abc123def456", "type": "sync", "status": "processing", "progress": 45, "processed": 90, "total": 200, "succeeded": 88, "failed": 2, "started_at": "2026-01-15T10:30:00Z", "completed_at": null, "errors": [ { "site_id": 15, "code": "mainwp_site_offline", "message": "Site is unreachable" } ]}Állapotértékek
Szekció neve “Állapotértékek”| Állapot | Jelentés |
|---|---|
queued |
Indulásra vár |
processing |
Éppen fut |
completed |
A feldolgozás befejeződött; egyes elemek közben hibázhattak |
failed |
Hibával leállt |
Lekérdezési munkamenet
Szekció neve “Lekérdezési munkamenet”A tipikus menet: indítsd el a műveletet, nézd meg, hogy sorba lett-e állítva, és ha igen, kérdezd le néhány másodpercenként a feladat állapotát, amíg az completed vagy failed nem lesz.
#!/bin/bash
# 1. A művelet indításaRESPONSE=$(curl -s -X POST -u "admin:xxxx" \ -H "Content-Type: application/json" \ -d '{"input":{"site_ids_or_domains":[]}}' \ "https://a-te-vezerlopultod.hu/wp-json/wp-abilities/v1/abilities/mainwp/sync-sites-v1/run")
# 2. Sorba lett állítva?QUEUED=$(echo $RESPONSE | jq -r '.queued // false')JOB_ID=$(echo $RESPONSE | jq -r '.job_id // empty')
if [ "$QUEUED" = "true" ] && [ -n "$JOB_ID" ]; then echo "Feladat sorba állítva: $JOB_ID"
# 3. Az állapot lekérdezése while true; do STATUS=$(curl -s -G -u "admin:xxxx" \ --data-urlencode "input_json=$(jq -cn --arg job_id "$JOB_ID" '{job_id: $job_id}')" \ "https://a-te-vezerlopultod.hu/wp-json/wp-abilities/v1/abilities/mainwp/get-batch-job-status-v1/run")
PROGRESS=$(echo $STATUS | jq -r '.progress') STATE=$(echo $STATUS | jq -r '.status') SUCCEEDED=$(echo $STATUS | jq -r '.succeeded') FAILED=$(echo $STATUS | jq -r '.failed')
echo "Előrehaladás: $PROGRESS% - Állapot: $STATE - Sikeres: $SUCCEEDED - Sikertelen: $FAILED"
if [ "$STATE" = "completed" ] || [ "$STATE" = "failed" ]; then echo "A feladat véget ért: $STATE" echo $STATUS | jq '.errors' break fi
sleep 10 doneelse echo "Azonnal lefutott" echo $RESPONSE | jq '.'fiA feladat életciklusa
Szekció neve “A feladat életciklusa”| Tulajdonság | Érték | Leírás |
|---|---|---|
| Élettartam | 24 óra | A feladat a befejezése után lejár |
| Időkorlát | 4 óra | A legnagyobb futásidő |
| Adagméret | 20 webhely | Egy cron-futásban feldolgozott webhelyek |
| Újraütemezési késleltetés | 30 másodperc | Az adagok közötti várakozás |
Ha a feladat lejárt, az állapotlekérdezés mainwp_job_not_found hibát ad.
Hibakezelés
Szekció neve “Hibakezelés”Ha egy kötegelt feladat hibába ütközik, az egyes hibákat feljegyzi, és a maradék elemek feldolgozását folytatja. A részleteket az állapotválasz errors tömbje tartalmazza:
{ "errors": [ { "site_id": 15, "code": "mainwp_site_offline", "message": "Site is unreachable" }, { "site_id": 23, "code": "mainwp_child_version_outdated", "message": "MainWP Child plugin needs update" } ]}Ha legalább egy művelet sikerült, a feladat completed állapottal zárul, akkor is, ha voltak hibák. Ha minden művelet sikertelen volt, az állapot failed.
Készült: