KomponentenFuture::ignore

Future::ignore

(PHP 8.6+, True Async 1.0)

php
public function ignore(): Future

Markiert das Future als ignoriert. Wenn das Future mit einem Fehler abgeschlossen wird und der Fehler nicht behandelt wird, wird er nicht an den Handler für unbehandelte Ausnahmen des Event-Loops übergeben. Nützlich für "Fire-and-Forget"-Aufgaben, bei denen das Ergebnis keine Rolle spielt.

Rückgabewert

Future — gibt dasselbe Future für Methodenverkettung zurück.

Beispiele

Beispiel #1 Future-Fehler ignorieren

php
<?php

use Async\Future;
use Async\FutureState;

// Eine Aufgabe starten, deren Fehler uns nicht interessieren
$state  = new FutureState();
$future = new Future($state);
$future->ignore();

\Async\spawn(function() use ($state) {
    // Diese Operation kann fehlschlagen
    try {
        sendAnalytics(['event' => 'page_view']);
        $state->complete(null);
    } catch (\Throwable $e) {
        $state->error($e);
    }
});

// Der Fehler wird nicht an den Event-Loop-Handler weitergegeben

Beispiel #2 Ignore mit Methodenverkettung verwenden

php
<?php

use Async\Future;
use Async\FutureState;

function warmupCache(array $keys): void {
    foreach ($keys as $key) {
        $state = new FutureState();
        (new Future($state))->ignore();  // Cache-Fehler sind nicht kritisch

        \Async\spawn(function() use ($state, $key) {
            try {
                $data = loadFromDatabase($key);
                saveToCache($key, $data);
                $state->complete(null);
            } catch (\Throwable $e) {
                $state->error($e);
            }
        });
    }
}

warmupCache(['user:1', 'user:2', 'user:3']);

Siehe auch