创建一个定时器计数器 - Python的
我使用的Django的项目,我有以下方法:创建一个定时器计数器 - Python的
TIMEOUT = 10 # defines the timeout in sec
def read_cluster_log(proc, cluster):
logs = ""
while True:
line = proc.stdout.readline()
if not line:
break
logging.info(line)
# here I need to add a buffer:
# if the 'counter' is equal to 10 sec
# append logs to the database and reset the timer to 0
# else, keep appending.
logs += line
cluster_log = ClusterLog(cluster=cluster, log=logs)
cluster_log.save()
return cluster_log
截至目前该功能捕捉整个输出,并将其保存到数据库中。 log
是BinaryField
。我需要做的是设置一个计时器,该计时器的运行范围为0到TIMEOUT
,然后将当前日志附加到log
字段中,该cluster
。定时器重置为0,并一直持续到程序结束。 这里的想法是当用户创建一个Hadoop
群集时,使输出从网站可用。但是,这一部分有点棘手。有人可以帮我吗? 该Django
应用程序正在运行的数据库是MySQL
尝试sleep(n)
它会睡n秒。
import time
TIMEOUT = 10 # defines the timeout in sec
def read_cluster_log(proc, cluster):
logs = ""
while True:
line = proc.stdout.readline()
if not line:
break
logging.info(line)
#changed here
time.sleep(TIMEOUT) #sleeps for 10 seconds
logs += line
cluster_log = ClusterLog(cluster=cluster, log=logs)
cluster_log.save()
return cluster_log
我不认为这会工作:-( – cybertextron 2014-09-25 04:46:39
你是否得到任何错误? – nu11p01n73R 2014-09-25 04:58:01
逻辑是完全错误的 – cybertextron 2014-09-25 05:20:50
我不知道,但我认为你需要使用像芹菜(http://celery.readthedocs.org/en/latest/)这里 – ruddra 2014-09-25 05:58:33