Samostojna uporaba
Queuety je zapakiran kot vtičnik za WordPress, vendar večina izvajalnega okolja za delovanje ne potrebuje aktivne zahteve WordPress.
Čakalna vrsta, mehanizem potekov dela, stroji stanj, signali, artefakti, paketna obdelava, razporejanje, beleženje, metrike in upravljanje virov delujejo z istimi podatkovnimi tabelami MySQL. Če lahko drug proces PHP odpre isto podatkovno zbirko, lahko to jedro uporablja neposredno.
To je meja samostojne uporabe v Queuety. Mehanizem za orkestracijo, ki uporablja podatkovno zbirko, je mogoče uporabljati zunaj WordPress. Mostovi WordPress pa ostajajo del WordPress.
Kaj deluje zunaj WordPress
Z neposredno povezavo Connection lahko samostojen proces inicializira Queuety in uporabi iste metode vmesnika kot vtičnik za osnovno izvajalno okolje:
- razpošiljanje opravil
- izvajanje delavcev in skupin delavcev
- sestavljanje in razpošiljanje potekov dela
- pošiljanje signalov, odobritev in vhodnih podatkov poteka dela
- sestavljanje in razpošiljanje strojev stanj
- pregled stanja poteka dela in stroja
- shranjevanje in branje artefaktov
- upravljanje paketne obdelave, veriženja in ponavljajočih se urnikov
- poizvedovanje po dnevnikih, metrikah, čakalnih vrstah in stanju izvajalnega okolja
To pomeni, da lahko zunanji izdelek dostopa do istega stanja orkestracije, ne da bi prej zagnal WordPress, če uporablja isto podatkovno zbirko in ista imena tabel.
Skupine delavcev so trenutno izjema: Queuety::run_worker_pool() in
Queuety::run_auto_scaling_worker_pool() berejo konstante WordPress DB_HOST,
DB_NAME, DB_USER in DB_PASSWORD namesto inicializirane povezave, zato mora samostojen proces te konstante določiti, preden zažene skupino (#5).
Kaj ostaja znotraj WordPress
Mostna plast, specifična za WordPress, je še vedno odvisna od naloženega WordPress.
To vključuje:
- inicializacijo vtičnika in vedenje ob aktivaciji v
queuety.php Queuety::on_action(), ki zahtevaadd_action()Queuety::replace_wp_cron()inQueuety::restore_wp_cron(), ki sta odvisna od filtrov WordPress cron indo_action()- dejansko pot registracije ukazov
wp queuety ..., ki je odvisna od tega, ali WP-CLI naloži WordPress
Ti deli so prilagodniki okoli jedra izvajalnega okolja. Sami po sebi niso izvajalno okolje.
Inicializacija
Samostojna pot je namenoma preprosta. Odprite povezavo Connection s podatkovno zbirko,
inicializirajte vmesnik in poskrbite, da shema obstaja.
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();
Nato je na voljo običajni API izvajalnega okolja:
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();
Poimenovanje tabel
Pri samostojni uporabi niso potrebna prav imena tabel WordPress. Potrebna je le stabilna strategija predpon.
Če Queuety povežete s podatkovno zbirko WordPress, uporabite isto predpono kot vtičnik. Če Queuety uporabljate v ločeni podatkovni zbirki, je lahko predpona povezave poljubna, kot jo pričakuje gostiteljska aplikacija. Del imen tabel, specifičen za Queuety, še vedno določata QUEUETY_TABLE_PREFIX in preglasitve posameznih tabel.
Vgrajena izvajalna okolja, ki si delijo podatkovno zbirko, lahko ta del, specifičen za Queuety, nastavijo za vsako povezavo posebej:
$conn = new Connection(
host: '127.0.0.1:3306',
dbname: 'wordpress',
user: 'root',
password: 'secret',
prefix: 'wp_',
table_prefix: 'themequeue_',
);
S tem ostane predpona podatkovne zbirke WordPress nespremenjena, tabele, kot je queuety_jobs, pa se razrešijo v wp_themequeue_jobs.
Miselni model
Delitev si najlažje predstavljamo takole:
- jedro Queuety = čakalna vrsta, delavci, poteki dela, stroji stanj, signali, artefakti in metapodatki izvajalnega okolja
- prilagodnik WordPress = inicializacija vtičnika, mostovi za kavlje, zamenjava WP-Cron in registracija WP-CLI
Tako ohranite en mehanizem za orkestracijo, integracija dogodkov in zahtev, specifična za WordPress, pa ostane tam, kjer sodi.