У меня есть 3400 машин Неют для передачи данных в графит, но мои сценарии занимают abount 5 минут, чтобы закончить, как я могу уменьшить его до 3-й или 2-х минут, спасибо, приведенного ниже кодаКак скопировать скрипты с 3400 машинами?
def sendmsg(hostname,metric):
a = mntdir + hostname + '/' + metric + '_median'
with settings(hide('running'), warn_only=True):
valueMedian = local(("cat %s|grep %s|awk '{print $2}'") % (a,now),capture=True)
local(("echo %s.%s_Median_90days %s %s >/dev/udp/20.26.2.18/2001 ") % (hostname,metric,valueMedian,unixdate))
if __name__=='__main__':
while True:
localtime = time.asctime(time.localtime(time.time()))
date = datetime.datetime.now()
now1 = date.strftime("%H:%M")
print now1
now2 = date.strftime("%M")
with settings(hide('running'), warn_only=True):
unixdate = local("date +%s",capture=True)
if int(now2) % 5 == 0:
now = now1 + ':00'
p=Pool(100)
print now
for hostname in host:
for metric in metrics:
p.apply_async(sendmsg, args=(hostname,metric))
starttime = time.asctime(time.localtime(time.time()))
print('Waiting for all job done...%s' % starttime)
p.close()
p.join()
stoptime = time.asctime(time.localtime(time.time()))
print('sending completed...%s ' % stoptime)
time.sleep(60)
Что делает ваша * локальная функция? – volcano