Pāriet uz saturu

Lietošana patstāvīgi

Queuety ir iepakots kā WordPress spraudnis, taču lielākajai daļai izpildlaika nav vajadzīgs aktīvs WordPress pieprasījums.

Rinda, darbplūsmu dzinis, stāvokļu mašīnas, signāli, artefakti, grupēšana, plānošana, reģistrēšana, metrikas un resursu pārvaldība darbojas ar tām pašām MySQL tabulām. Ja cits PHP process var atvērt to pašu datubāzi, tas var tieši izmantot šo pamatdaļu.

Tā ir patstāvīgās darbības robeža Queuety. Datubāzē balstīto orķestrēšanas dzini var izmantot ārpus WordPress. Savienotāji WordPress joprojām pieder WordPress.

Kas darbojas ārpus WordPress

Izmantojot tiešu Connection, patstāvīgs process var inicializēt Queuety un izmantot tās pašas fasādes metodes, ko spraudnis izmanto pamatdarbības izpildei:

  • palaist uzdevumus
  • darbināt darbiniekus un darbinieku kopumus
  • veidot un palaist darbplūsmas
  • sūtīt signālus, apstiprinājumus un darbplūsmas ievadi
  • veidot un palaist stāvokļu mašīnas
  • pārbaudīt darbplūsmu un mašīnu statusu
  • glabāt un nolasīt artefaktus
  • vadīt grupēšanu, ķēdēšanu un periodiskos grafikus
  • vaicāt žurnālus, metriku, rindas un izpildlaika statusu

Tas nozīmē, ka ārējs produkts var piekļūt tam pašam orķestrēšanas stāvoklim, vispirms nepalaižot WordPress, ja vien tas izmanto to pašu datubāzi un tabulu nosaukumus.

Darbinieku kopumi pašlaik ir vienīgais izņēmums: Queuety::run_worker_pool() un Queuety::run_auto_scaling_worker_pool() nolasa WordPress DB_HOST, DB_NAME, DB_USER un DB_PASSWORD konstantes, nevis inicializēto savienojumu, tāpēc patstāvīgam procesam šīs konstantes ir jādefinē, pirms tas palaiž kopumu (#5).

Kas paliek WordPress vidē

WordPress paredzētais savienotāju slānis joprojām ir atkarīgs no tā, vai ir ielādēts WordPress.

Tas ietver:

  • spraudņa ielādes un aktivizēšanas darbības queuety.php vidē
  • Queuety::on_action(), kam nepieciešams add_action()
  • Queuety::replace_wp_cron() un Queuety::restore_wp_cron(), kas ir atkarīgi no WordPress cron filtriem un do_action()
  • īstais komandas wp queuety ... reģistrācijas ceļš, kas ir atkarīgs no tā, vai WP-CLI ielādē WordPress

Šīs daļas ir pamatdarbības izpildlaika adapteri. Tās pašas nav izpildlaika vide.

Inicializēšana

Patstāvīgās darbības ceļš ir apzināti vienkāršs. Atveriet DB balstītu Connection, inicializējiet fasādi un pārliecinieties, ka shēma ir izveidota.

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

Pēc tam ir pieejams parastais izpildlaika API:

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

Tabulu nosaukumi

Patstāvīgai lietošanai nav vajadzīgi tieši WordPress tabulu nosaukumi. Nepieciešama tikai stabila prefiksu piešķiršanas stratēģija.

Ja savienojat Queuety ar WordPress datubāzi, izmantojiet to pašu prefiksu, ko spraudnis tur izmanto. Ja izmantojat Queuety atsevišķā datubāzē, savienojuma prefikss var būt jebkurš, ko paredz jūsu resursdatora lietotne. Queuety paredzēto tabulu daļu joprojām nosaka QUEUETY_TABLE_PREFIX un katras tabulas pārrakstīšanas iestatījumi.

Iegultas izpildlaika vides, kas koplieto vienu datubāzi, var iestatīt šo Queuety paredzēto daļu katram savienojumam:

PHP
$conn = new Connection(
    host: '127.0.0.1:3306',
    dbname: 'wordpress',
    user: 'root',
    password: 'secret',
    prefix: 'wp_',
    table_prefix: 'themequeue_',
);

Tādējādi datubāzes WordPress prefikss paliek neskarts, bet tabulas, piemēram, queuety_jobs, tiek atrisinātas uz wp_themequeue_jobs.

Priekšstats par darbību

Vienkāršākais veids, kā izprast šo sadalījumu:

  • Queuety pamatdaļa = rinda, darbinieki, darbplūsmas, stāvokļu mašīnas, signāli, artefakti un izpildlaika metadati
  • WordPress adapteris = spraudņa ielāde, aizķeru savienotāji, WP-Cron aizstāšana un WP-CLI reģistrācija

Tādējādi tiek saglabāts viens orķestrēšanas dzinis, bet WordPress paredzētā notikumu un pieprasījumu integrācija paliek tai paredzētajā vietā.