#twisted
#скрученные
Вопрос:
Я пытаюсь объединить две существующие кодовые базы, которые используют twisted по-разному, и я не совсем уверен, с чего начать.
В одном случае у меня есть приложение kivy, интегрированное со скрученным реактором более или менее так, как описано здесь. По сути, все приложение представляет собой класс, и методы класса возвращают отсрочки по мере необходимости. Это работает нормально и на удивление хорошо. Я использую Kivy здесь, потому что он предоставляет графический интерфейс, который мне нужен. Приложение запускается с помощью MyApplication.run(), который является Kivy, и который внутренне создает и запускает twisted reactor.
В другом (чисто скрученном) случае у меня есть коллекция скрученных сервисов ( t.a.service.Service
подклассов), которые я объединяю в MainApplication ( t.a.service.Application
), используя someService.setParent(mainApplication)
. Это выполняется с помощью t.a.app.startApplication
и reactor.run()
. Это тоже хорошо работает.
В обоих случаях запуск приложения приводит к тому, что управление полностью переходит к реактору, как и ожидалось.
Что я хотел бы сделать, так это повторно использовать некоторые из этих скрученных сервисов в моем приложении Kivy. Кажется, я могу получить доступ к реактору из приложения kivy, поскольку такие вещи, как reactor.callLater(), работают должным образом.
- Есть ли какой-нибудь способ, которым я могу также выполнить reactor.startService(SomeService)?
- В настоящее время я использую
self.parent.getServiceNamed("someService")
приложение на основе twisted Service для связи между службами. Как это можно сделать при использовании альтернативного подхода.
Любой совет, с чего начать поиск, был бы полезен.