Naudojimas atskirai
Queuety pateikiamas kaip WordPress įskiepis, tačiau daugumai vykdymo aplinkos funkcijų nereikia aktyvios WordPress užklausos.
Eilė, darbo eigos variklis, būsenų automatai, signalai, artefaktai, paketinis apdorojimas, planavimas, žurnalų rašymas, metrikos ir išteklių valdymas veikia su tomis pačiomis MySQL lentelėmis. Jei kitas PHP procesas gali atverti tą pačią duomenų bazę, jis gali tiesiogiai naudoti šį branduolį.
Tai yra atskiro naudojimo riba sistemoje Queuety. Duomenų bazės pagrindu veikiantį orkestravimo variklį galima naudoti už WordPress ribų. WordPress integraciniai sluoksniai vis tiek priklauso WordPress.
Kas veikia už WordPress ribų
Naudodamas tiesioginį Connection, atskiras procesas gali inicijuoti Queuety ir naudoti
tuos pačius fasado metodus kaip ir įskiepis pagrindinei vykdymo aplinkai valdyti:
- išsiųsti užduotis
- paleisti vykdytojus ir vykdytojų grupes
- kurti ir paleisti darbo eigas
- siųsti signalus, patvirtinimus ir darbo eigos įvestį
- kurti ir paleisti būsenų automatus
- tikrinti darbo eigos ir automato būseną
- saugoti ir skaityti artefaktus
- valdyti paketinį apdorojimą, grandines ir pasikartojančius tvarkaraščius
- teikti žurnalų, metrikų, eilių ir vykdymo aplinkos būsenos užklausas
Tai reiškia, kad išorinis produktas gali pasiekti tą pačią orkestravimo būseną pirmiausia nepaleidęs WordPress, jei naudoja tą pačią duomenų bazę ir lentelių pavadinimus.
Šiuo metu vykdytojų grupės yra vienintelė išimtis: Queuety::run_worker_pool() ir Queuety::run_auto_scaling_worker_pool() skaito WordPress DB_HOST, DB_NAME, DB_USER ir DB_PASSWORD konstantas, o ne inicijuotą ryšį, todėl atskiras procesas prieš paleisdamas grupę turi apibrėžti šias konstantas (#5).
Kas lieka WordPress viduje
WordPress skirtas integracinis sluoksnis vis dar priklauso nuo to, ar įkelta WordPress.
Tai apima:
- įskiepio paleidimą ir aktyvinimo veikimą sistemoje
queuety.php Queuety::on_action(), kuriam būtinaadd_action()Queuety::replace_wp_cron()irQueuety::restore_wp_cron(), kurie priklauso nuo WordPress cron filtrų irdo_action()- tikrąjį
wp queuety ...komandų registravimo kelią, kuris priklauso nuo to, ar įkeliama WP-CLI WordPress
Šios dalys yra pagrindinės vykdymo aplinkos adapteriai. Jos nėra pati vykdymo aplinka.
Inicijavimas
Atskiras naudojimo kelias sąmoningai paliktas paprastas. Atverkite duomenų bazės pagrindu veikiantį Connection,
inicijuokite fasadą ir pasirūpinkite, kad schema būtų sukurta.
use Queuety\Connection;
use Queuety\Queuety;
$conn = new Connection(
host: '127.0.0.1:3306',
dbname: 'wordpress',
user: 'root',
password: 'secret',
prefix: 'wp_',
);
Queuety::init( $conn );
Queuety::ensure_schema();
Po to bus pasiekiamas įprastas vykdymo aplinkos API:
Queuety::dispatch( 'send_email', [ 'to' => 'user@example.com' ] );
$workflow_id = Queuety::workflow( 'report' )
->then( FetchReportData::class )
->then( RenderReport::class )
->dispatch( [ 'report_id' => 42 ] );
$machine_id = Queuety::machine( 'agent_session' )
->state( 'awaiting_input' )
->on( 'message', 'planning' )
->state( 'planning' )
->action( PlanSessionAction::class )
->dispatch();
Lentelių pavadinimai
Atskirai naudojant nebūtina turėti specialiai WordPress skirtų lentelių pavadinimų. Reikia tik stabilios priešdėlių strategijos.
Jei Queuety prijungiate prie WordPress duomenų bazės, naudokite tą patį priešdėlį, kurį ten naudoja
įskiepis. Jei atskiroje duomenų bazėje naudojate Queuety, ryšio
priešdėlis gali atitikti pagrindinės programos poreikius. Lentelių dalis, skirta Queuety,
vis tiek valdoma per QUEUETY_TABLE_PREFIX ir kiekvienos lentelės
perrašymo parinktis.
Įterptosios vykdymo aplinkos, kurios naudoja tą pačią duomenų bazę, gali nustatyti šią Queuety skirtą dalį atskirai kiekvienam ryšiui:
$conn = new Connection(
host: '127.0.0.1:3306',
dbname: 'wordpress',
user: 'root',
password: 'secret',
prefix: 'wp_',
table_prefix: 'themequeue_',
);
Taip WordPress duomenų bazės priešdėlis paliekamas nepakeistas, o tokių lentelių kaip
queuety_jobs pavadinimai susiejami su wp_themequeue_jobs.
Kaip tai suprasti
Šį padalijimą patogiausia suprasti taip:
- Queuety branduolys = eilė, vykdytojai, darbo eigos, būsenų automatai, signalai, artefaktai ir vykdymo metaduomenys
- WordPress adapteris = įskiepio paleidimas, kablių integracija, WP-Cron pakaitalas ir WP-CLI registravimas
Taip išlaikomas vienas orkestravimo variklis, o su WordPress susijusi įvykių ir užklausų integracija lieka ten, kur jai ir vieta.