Уведомления

Группа в Telegram: @pythonsu

#1 Июль 19, 2011 18:25:14

sashog
От:
Зарегистрирован: 2011-07-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Команды jabber-бота работают не синхронно с тредом. Убить thread! (?

Привет.
Написал jabber-бота, запустил на своем серваке.. Принцип этого бота такой. Если в общем чате (канале, комнате) юзверь пишет например сообщение “HI” то бот ему отвечает “И тебе хай, чувак”. :P Воть приблизительный код процедуры обработки сообщения “HI” (было лень открывать содержимое питон-файла):

def obrabotka_komandy_hi(self, cmd, args, mesg):
if mesg.genFrom() == "HI": print "И тебе хай, чувак"
return "И тебе хай, чувак"
Но другие остальные команды бот анализирует в треде (thread). Вот примерное содержимое процедуры треда:
def thread_proc(self):
if global_messaga == "LIST": return "FUCK"
if global_message == "WHOAMI": return "Покемон"
if something == anything: return nothing

for x in len(f):
sleep 1
x = x + 3

print "Прошло 12 секунд"
Вот так получается что команды пользователя “HI” и “LIST” например должны работать синхронно. То есть если юзверь ввел HI то тред thread_proc не должен уже обрабатывать команду “LIST”.. )) А получилось так, что юзверь вводит “HI” и ему бот отвечает “И тебе хай, чувак”. Но после этого кто-то там вводит “LIST” и бот вызывает thread_proc и выводит сообщение “FUCK” :D Короче я думаю, что надо убить тред thread_proc в процедуре obrabotka_komandy_hi. Или запустить этот тред по новой. И как это сделать? Просто вот тот цикл for… он скорее всего мешает синхронной обработке команд бота. Но этот цикл необходим (((. Так что советуйте))) Как убить тред или запустить его по новой.. (((



Офлайн

#2 Июль 20, 2011 18:33:16

kzoi_py
От:
Зарегистрирован: 2009-02-01
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Команды jabber-бота работают не синхронно с тредом. Убить thread! (?

твистед использлвали?



Офлайн

#3 Июль 22, 2011 01:46:13

sashog
От:
Зарегистрирован: 2011-07-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Команды jabber-бота работают не синхронно с тредом. Убить thread! (?

kzoi_py
твистед использлвали?
Нет не использовал. :P А чо такое твистед?



Офлайн

#4 Июль 22, 2011 02:14:01

sashog
От:
Зарегистрирован: 2011-07-12
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Команды jabber-бота работают не синхронно с тредом. Убить thread! (?

sashog
kzoi_py
твистед использлвали?
Нет не использовал. :P А чо такое твистед?
А-а-а) дошло) Не, не твистед. Использовал xmpp и класс python-jabberbot.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version