Tovább a tartalomhoz

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.

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 );

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.

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
}

Egy sorba állított kötegelt művelet aktuális állapotát adja vissza. Csak olvas, GET.

Terminál
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 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

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ása
RESPONSE=$(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
done
else
echo "Azonnal lefutott"
echo $RESPONSE | jq '.'
fi
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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások