?> batchresults - WeAreCAS
session

batchresults

Beschreibung

Die Aktion `batchresults` ermöglicht es, eine laufende Aktion, die in einer anderen Sitzung ausgeführt wird, in den Batch-Modus zu versetzen. Dies ist besonders nützlich für lang andauernde Aktionen, da der Client nicht auf den Abschluss der Aktion warten muss. Stattdessen wird die Aktion im Hintergrund weiter ausgeführt, und die Ergebnisse können zu einem späteren Zeitpunkt mit der Aktion `fetchresult` abgerufen werden.

session.batchresults <result=results> <status=rc> / uuid="string";
Einstellungen
ParameterBeschreibung
uuidGibt die eindeutige Kennung (UUID) der Aktion an, die in den Batch-Modus versetzt werden soll. Diese UUID wird zurückgegeben, wenn eine Aktion asynchron gestartet wird.
Datenaufbereitung
Datenerstellung für Beispiele

Die folgenden Beispiele verwenden die Tabelle `cars` aus der `SASHELP`-Bibliothek. Diese Tabelle wird in die `CASUSER`-Caslib geladen, um sie in den Beispielen zu verwenden.

1PROC casutil;
2 load DATA=sashelp.cars outcaslib='casuser' casout='cars' replace;
3QUIT;

Beispiele

Dieses Beispiel zeigt, wie man eine lang andauernde Aktion (hier eine einfache Zusammenfassung, die 5 Sekunden lang pausiert, um eine lange Laufzeit zu simulieren) in einer Sitzung asynchron startet und dann von einer anderen Sitzung aus mit `batchresults` in den Batch-Modus umschaltet.

SAS® / CAS-Code
Kopiert!
1/* Sitzung 1: Starten Sie eine lang andauernde Aktion asynchron */
2sess1 = CAS.SESSION();
3CAS.BUILTINS.sleep(sess1, seconds=5, _async='job1');
4 
5/* Sitzung 2: Holen Sie sich die Job-UUID und schalten Sie sie in den Batch-Modus */
6sess2 = CAS.SESSION();
7STATUS = CAS.SESSION.actionstatus(sess2, job='job1');
8job_uuid = STATUS['ActionStatus']['jobUuid'][1];
9CAS.SESSION.batchresults(sess2, uuid=job_uuid);
10 
11CAS.SESSION.endsession(sess1);
12CAS.SESSION.endsession(sess2);
Ergebnis :
Die Aktion wird in den Batch-Modus versetzt. Die `batchresults`-Aktion gibt eine Erfolgsmeldung zurück. Die ursprüngliche Aktion läuft im Hintergrund weiter und der Client muss nicht warten.

Dieses Beispiel demonstriert einen vollständigen Workflow. Zuerst wird eine `simple.summary`-Aktion asynchron gestartet. Dann wird ihre UUID verwendet, um sie mit `batchresults` in den Batch-Modus zu versetzen. Schließlich wird `actionstatus` verwendet, um den Status zu überprüfen, und `fetchresult`, um die Ergebnisse abzurufen, sobald die Aktion abgeschlossen ist.

SAS® / CAS-Code
Kopiert!
1/* Sitzung 1: Starten Sie eine Analyseaktion asynchron */
2sess1 = CAS.SESSION(name='s1');
3CAS.SIMPLE.summary(sess1, TABLE='cars', _async='summary_job');
4 
5/* Sitzung 2: Finden Sie den Job, schalten Sie ihn in den Batch-Modus und rufen Sie die Ergebnisse ab */
6sess2 = CAS.SESSION(name='s2');
7STATUS = CAS.SESSION.actionstatus(sess2, SESSION='s1', job='summary_job');
8job_uuid = STATUS['ActionStatus']['jobUuid'][1];
9PRINT('Job UUID: ' || job_uuid);
10 
11/* In den Batch-Modus umschalten */
12CAS.SESSION.batchresults(sess2, uuid=job_uuid);
13 
14/* Warten Sie, bis die Aktion abgeschlossen ist (simuliert durch sleep) */
15CAS.BUILTINS.sleep(seconds=10);
16 
17/* Ergebnisse abrufen */
18results = CAS.SESSION.fetchresult(sess2, uuid=job_uuid);
19PRINT(results);
20 
21CAS.SESSION.endsession(sess1);
22CAS.SESSION.endsession(sess2);
Ergebnis :
Die Aktion wird erfolgreich in den Batch-Modus versetzt. Nach Abschluss der Aktion im Hintergrund können die Ergebnisse (in diesem Fall die Zusammenfassung der Tabelle 'cars') erfolgreich mit `fetchresult` abgerufen und angezeigt werden.

FAQ

Was ist der Zweck der Aktion `batchresults`?
Welcher Parameter ist für die Aktion `batchresults` erforderlich?
Wie lautet die Syntax für die Verwendung der Aktion `batchresults` in CASL?