Domino 9 und frühere Versionen > ND6: Entwicklung

lokale Agenten im Hintergrund/Vordergrund?

(1/2) > >>

fritandr:
Hallo,

ich habe im Moment keinen konkreten Bedarf. Aber seit einigen Tagen geht mir immer mal wieder eine Frage durch den Kopf, die ich gerne mal an Euch weiterreichen möchte.

Ich kann ja seit ND6 einen lokalen Agenten auf dem Client im Hintergrund ablaufen lassen. Vorteil für mich ist dabei, daß ich noch mit dem Client weiterarbeiten kann, während der Agent läuft.
Dabei muß der Agent einige Bedingungen erfüllen (keine Interaktion mit dem User, ...). Mal vorausgesetzt, ich habe diese Bedingungen erfüllt, funktioniert das Prima.

Und jetzt stelle ich mir folgende Situation vor.
Ich möchte meinem Benutzer die Möglichkeit geben, einen Agenten auf seinem Client mal im Hintergrund auszuführen und mal im Vordergrund. Kann ich das irgendwie steuern (evtl. durch einen anderen Agenten, der meinen ursprünglichen mal so und mal so aufruft) oder brauche ich dann zwei, im Prinzip identische Agenten, mit unterschiedlichen Eigenschaften?

Bin schon auf Eure Antworten gespannt.

Viele Grüße
Andreas

Lossa:
Hi,

es gibt mehrer Möglichkeiten:

1. In den Eigenschaften des Agents wird festgelegt, das dieser im Background laufen soll, dann macht er das immer => 2 Agenten sind notwendig, 1x vordergrund, 1x Hintergrund.

2. Der Agent wird z.B. per @Command aufgerufen:
@Command([ToolsRunMacros;"Agent")
@Command([[ToolsRunBackgroundMacros];"Agent")
=> Ein Agent zwei Auswahlmöglichkeiten.

Semeaphoros:
Das ist die technische Seite, die Andreas bestimmt auch wusste  ;)

Interessant werden die Ansätze, wie man einen solchen Dualismus sinnvoll nutzt. Vordergrund macht doch eigentlich nur dann richtig Sinn, wenn man dabei irgend eine Interaktion mit dem Nutzer mitliefert und sei es schon nur eine Fortschrittsanzeige. Und gerade so etwas macht es interessant, denn dann muss ein Mechanismus im Agenten drin sein, der den Vordergrund-Agenten feststellen lässt, wie weit der hintergrundfähige Agent schon ist, anders ausgedrückt, interesssant wäre, wie man eine solche Schnittstelle zwischen einem hintergrundfähigen Agenten und einem "vordergründigen" Steueragenten realisiert.

Lossa:
Hi,

leider werden die Hintergrundagent gekappselt ausgeführt, somit gibt es zumindest keine Client (Script, Formel) implementation um interaktionen zw. Hintergrundagents und Frontendagents durchzuführen. Der Umweg über "Kommunikations"Dokumente und entsprechenden Warteschleifen auf bestimmte Informationen des Hintergrund- oder Vordergrundagenten wäre ein denkbare Lösung.

fritandr:

--- Zitat von: Lossa am 26.04.05 - 09:36:29 ---2. Der Agent wird z.B. per @Command aufgerufen:
@Command([ToolsRunMacros;"Agent")
@Command([[ToolsRunBackgroundMacros];"Agent")
=> Ein Agent zwei Auswahlmöglichkeiten.

--- Ende Zitat ---

Hallo,

zuerst danke für die Antwort. Aber was das @Command([ToolsRunBackgroundMacros]) angeht, bin ich nicht so ganz einverstanden.
Meine Designerhilfe sagt mir dazu:

--- Zitat ---Runs all of the database's scheduled agents, regardless of when they are scheduled to run. The agents will then run as usual at their regularly scheduled times.
Syntax
@Command( [ToolsRunBackgroundMacros] )
Usage
This command executes after all @functions. Use @Command([RunScheduledAgents]) to execute immediately.
--- Ende Zitat ---

Ich habe das so verstanden, daß ich durch das ToolsRunBackgroundMacros alle scheduled Agents in meiner DB starte. Nicht aber gezielt den einen, den ich gerade ausführen möchte. Auch sehe ich keine Beschreibung, wonach ich bei ToolsRunBackgoundMacros einen Agentennamen als zusätzlichen Parameter angeben kann.
Damit entspricht das nicht dem Ergebnis, wie wenn ich für einen einzelnen Agenten die Eigenschaft "läuft im Background" setze, oder.

Sichtlich verwirrt
Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln