2016-10-04 3 views
1

Как приостановить этот поток от запуска каждые 300 секунд в течение 500 секунд? Мне нужно приостановить его выполнение всех функций каждые x минут, чтобы предотвратить нарушения API. Кажется, что объекты Timer запускают только код, тогда как цель - приостановить, подождать, возобновить.Как приостановить эту тему после x минут

from TwitterFollowBot import TwitterBot 
from threading import Thread 
import random 

my_bot = TwitterBot() 
my_bot.sync_follows() 


def a(): 
    my_bot.auto_fav("@asco", count=1000) 

def b(): 
    my_bot.auto_fav("ATSO", count=1000) 

def c(): 
    my_bot.auto_fav("BCY3", count=1000) 

lof = [a, b, c] 
random.shuffle(lof) 

for z in lof: 
    Thread(target=z).start() 

Кредит @ Farhan.K за помощь в использовании кода.

+0

https://docs.python.org/2/library/threading.html#timer-objects – Natecat

+0

Это кажется только запустить код. Мне нужно прервать его, подождать и возобновить. Не понял ли я документацию? –

+0

Вы не можете приостанавливать потоки. Код в потоке может приостановить себя, но я предполагаю, что это будет вопрос о API 'TwitterBot', а не о потоковом. – tdelaney

ответ

1

Возможно, что-то вроде этого для ваших тем?

import time 


def sleep_thread(sleepWait, sleepTime): 
    timeStart = time.time() 
    timeElapsed = 0 

    while timeElapsed <= sleepWait: 
     timeElapsed = time.time() - timeStart 
     print 'time elapsed = ' + str(timeElapsed) 
     time.sleep(1) 

    print 'going to sleep. zzz....' 
    # Sleep for x 
    time.sleep(sleepTime) 
    print 'im awake!' 


sleep_thread(5, 3) 
+0

Спасибо, Майкл, если я включу его в поток, он только спит сам, не воздействуя на другие потоки. Это очень полезно для чего-то еще, что я делал. –

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