Найти - Пользователи
Полная версия: Twisted и тред для вычислений
Начало » Network » Twisted и тред для вычислений
1
argos
А не подскажет ли высокоуважаемый форум как бы в программе написанной для запуска через twistd грамотно ( или как бы это лучше сказать по twisted-way ) запустить отдельный не event-based тред ?
slav0nic
http://twistedmatrix.com/projects/core/documentation/howto/threading.html не смотрел?
argos
Это то как раз смотрел… Просто не зная внутренней структуры твисетда, я не могу понять где лучше запускать эти треды, напрямую reactor.callInThread из .tac или откуда-нибудь еще…
bw
Тебе нужен всегда работающий поток, параллельный основному?
По Twisted-way это лучше реализовать как сервис, стартует он пусть из .tac, если тебя это устроит:
from twisted.application.service import IService, Application, Service

class MyService(Service):

def startService(self):
from twisted.internet import reactor
reactor.callInThread(self.my_loop)
Service.startService(self)

def stopService(self):
Service.stopService(self)

def my_loop(self):
while self.running:
pass

application = Application('My Server')
IService(application).addService(MyService())
Сервис будет запущен автоматически.

p.s. Добавил условие остановки цикла, по состоянию MyService.running. Нужен тебе MyService.stopService или нет - решай сам.

..bw
argos
От спасиба!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB