2017-04-10 5 views
0

Ich bin auf der Suche nach einer Möglichkeit, eine Mesos Aufgabe zu beenden oder das Framework in der mesos-rxjava Bibliothek herunterzufahren. Es scheint, dass nach subscribe() die einzigen Möglichkeiten, Aufrufe an Mesos zu senden, in Reaktion auf Ereignisse von Mesos sind. Ich war in der Lage, Fenzo in eine separate Scheduling-Schleife zu integrieren, indem ich Angebotsleases mit einem Observable from a Promise beantwortete und dieses Versprechen für die Fenzo-Schleife speicherte, so dass es wahrscheinlich auch mit dem Update-Ereignis "task started" möglich ist Behalten Sie das Versprechen bei, um diese Aufgabe zu beenden, aber dann können Sie eine Aufgabe, die noch nicht begonnen wurde, nicht abbrechen, und sie löst nicht, um das Framework herunterzufahren. Oder gibt es eine Möglichkeit, die Authentifizierung der Bibliothek zu verwenden, um einfach die HTTP-Anfrage in einer nicht-reaktiven Weise zu senden? Gibt es eine sauberere Lösung, die ich vermisse?mesos-rxjava - Tasks und Herunterfahren Scheduler

Antwort

1

Ich denke, was Sie hier suchen, ist der TEARDOWN Call [1], wenn dieser Aufruf zu Mesos aus dem Scheduler gesendet wird, wird es ein vollständiges Herunterfahren des Frameworks über den Cluster initiieren.

Durch das Weben eines Subjekts in das Observable (Sie können ein Beispiel des Webens Observables zusammen in Link 2 unten sehen) bieten Sie dem mesos-rxjava Client an, dass Sie sich mit einem Handle versehen können, um Anrufe zu senden, die nicht t eine direkte Reaktion auf ein Ereignis. Ein Link 3 unten ist ein Link zu einer Github-Ausgabe, die das ein bisschen mehr erklärt.

[1] https://github.com/apache/mesos/blob/master/docs/scheduler-http-api.md#teardown
[2] https://github.com/mesosphere/mesos-rxjava/blob/master/mesos-rxjava-example/mesos-rxjava-example-framework/src/main/java/com/mesosphere/mesos/rx/java/example/framework/sleepy/Sleepy.java#L140
[3] https://github.com/mesosphere/mesos-rxjava/pull/63#issuecomment-235043568