我试图运行某些功能“foo”的每一秒。 我有几分钟做到这一点(比如5)。
函数foo(),使100个HTTP请求(其中包含一个JSON对象)发送到服务器,并打印JSON响应。
总之,我必须让每秒100个HTTP请求5分钟。
我刚开始学习Python的,因此不具备广博的知识。 这是我曾尝试:
import threading
noOfSecondsPassed = 0
def foo():
global noOfSecondsPassed
# piece of code which makes 100 HTTP requests (I use while loop)
noOfSecondsPassed += 1
while True:
if noOfSecondsPassed < (300) # 5 minutes
t = threading.Timer(1.0, foo)
t.start()
由于多线程,则函数foo不叫300倍,但很多远不止于此。 我曾尝试设置一个锁太:
def foo():
l = threading.Lock()
l.acquire()
global noOfSecondsPassed
# piece of code which makes 100 HTTP requests (I use while loop)
noOfSecondsPassed += 1
l.release()
代码的其余部分是一样的前面的代码片段。 但是,这也不能正常工作。
我该怎么做呢?
编辑:不同的方法
我曾经尝试这样做的办法,为我工作:
def foo():
noOfSecondsPassed = 0
while noOfSecondsPassed < 300:
#Code to make 100 HTTP requests
noOfSecondsPassed +=1
time.sleep(1.0)
foo()
这样做的任何缺点?