Ankündigung

Einklappen
Keine Ankündigung bisher.

event loop in Plugins

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    event loop in Plugins

    Hallo an die Profis hier.

    Ich nutze in einem Plugin asynchrone Methoden. Das Problem ist allerdings, dass ich da einen Fehler bekomme, weil:

    Code:
    raise RuntimeError(f'{self!r} is bound to a different event loop')
    > RuntimeError: <asyncio.locks.Event object at 0x685892f8 [unset]> is bound to a different event loop​
    sicherlich der event loop nicht mehr der Richtige ist, wenn ich den Scheduler im plugin verwende. Das heißt bei der Initalisierung verwende ich einen anderen event loop, als bei update_item. Ich habe versucht das so zu lösen, dass ich im __init__ im Plugin den event loop speichere:

    Code:
    self._loop = asyncio.get_event_loop()
    und bei poll_device zurück setze:

    Code:
    asyncio.set_event_loop(self._loop)
    Das löst das Problem aber nicht. Wie kann man das denn hinbekommen, dass man nachher wieder im richtigen event loop ist?

    #2
    Das Problem ist behoben. Sicherlich konnte auch keiner dazu Tipps geben, weil die Info fehlte, wie ich denn die asynchrone Funktion aufrufe. Der Fehler war, dass ich das bisher mit asyncio.run gemacht hatte, was so wohl nicht funktioniert. Damit geht es aber:

    Code:
    self._loop = asyncio.new_event_loop()
    self._loop.run_until_complete(self.meine_funtion())

    Kommentar

    Lädt...
    X