2016-10-04 8 views
1

このスレッドを300秒ごとに500秒間実行するのを一時停止するにはどうすればよいですか? APIの違反を防ぐために、x分ごとにすべての関数を実行することを中断する必要があります。 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

スレッドを一時停止することはできません。スレッドのコードは自分自身を一時停止することができるかもしれませんが、私はスレッドビルディングではなく 'TwitterBot' APIについての質問になると思います。 – 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

マイケルに感謝します。スレッドに含めると、他のスレッドに影響を与えずにスリープするだけです。これは私がやっていたことにとても役立ちます。 –

関連する問題