2010-09-20 5 views
0

У меня есть небольшой ретранслятор Ниже, который заканчивается, Как можно исправить так стабильнее от сбоев, а не перестать работать .... Я бы добавил сердцебиение в gui, чтобы увидеть, что он все еще работает. В Wxpthon моя строка меню пустая или белая.Многопоточный ретранслятор в Python

def TimerSetup(): 
     import threading, time 
     invl = 300 

     def dothis(): 
      try: 
       FetchUpdates() 
      except Exception as e: 
       pass 

     class Repeat(threading.Thread): 
      def run(self): 
       dothis() 

     if __name__ == '__main__': 
      for x in range(7000): 
       thread = Repeat(name = "Thread-%d" % (x + 1)) 
       thread.start() 
       time.sleep(invl) 

ответ

0

Это работает для 7000 итераций. Поэтому, если время выполнения составляет около 7000 * 300 с, оно «работает точно так же, как и закодировано» :-) Однако, возможно, количество потоков или вещей, которые вы делаете в FetchUpdates, может быть проблемой. Есть ли трассировка, когда она останавливается? Достигают ли пользовательского предела?

+0

Есть нет отслеживающего, всего не останавливается. мертвый. Я использую простой gui с buttom, который остается нажатым, когда он работает. – Merlin

+0

Какой код вы нажимаете на кнопку gui. Очевидно, что он не возвращает – knitti

+0

нажатием кнопки, выполняет таймер. код таймера выполняет извлечение Интернета в db. затем повторите. У меня есть «попытка» кода для интернет-выхода, не срабатывает. ... переработка - интернет-процесс ... – Merlin

0

кажется вам нужно присоединиться(), чтобы ждать начала резьбы

def TimerSetup(): 
     import threading, time 
     invl = 300 

     def dothis(): 
      try: 
       FetchUpdates() 
      except Exception as e: 
       pass 

     class Repeat(threading.Thread): 
      def run(self): 
       dothis() 

     if __name__ == '__main__': 
      for x in range(7000): 
       thread = Repeat(name = "Thread-%d" % (x + 1)) 
       thread.start() 
       thread.join() 
       time.sleep(invl) 
+0

почему мне нужно соединение? – Merlin

+0

, потому что вам нужно подождать конца для thread.start(), затем запустите новый поток и продолжайте. или поток, просто начинающий поток без конца, который вызывает крушение –

 Смежные вопросы

  • Нет связанных вопросов^_^