Уведомления

Группа в Telegram: @pythonsu

#1 Май 2, 2009 12:57:51

argos
От:
Зарегистрирован: 2009-04-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Twisted и тред для вычислений

А не подскажет ли высокоуважаемый форум как бы в программе написанной для запуска через twistd грамотно ( или как бы это лучше сказать по twisted-way ) запустить отдельный не event-based тред ?



Офлайн

#2 Май 3, 2009 15:10:03

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Twisted и тред для вычислений

Офлайн

#3 Май 4, 2009 10:23:57

argos
От:
Зарегистрирован: 2009-04-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Twisted и тред для вычислений

Это то как раз смотрел… Просто не зная внутренней структуры твисетда, я не могу понять где лучше запускать эти треды, напрямую reactor.callInThread из .tac или откуда-нибудь еще…



Офлайн

#4 Май 5, 2009 21:59:24

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Twisted и тред для вычислений

Тебе нужен всегда работающий поток, параллельный основному?
По 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



Отредактировано (Май 5, 2009 22:03:39)

Офлайн

#5 Май 10, 2009 10:45:28

argos
От:
Зарегистрирован: 2009-04-28
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Twisted и тред для вычислений

От спасиба!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version