J'essaie de créer une application qui exécutera un script bash toutes les 10 minutes. J'utilise apscheduler pour accomplir ceci et quand je cours mon code du terminal cela fonctionne comme le travail d'horloge. Cependant quand j'essaye d'exécuter le code d'un autre module il se bloque je soupçonne que le module appelant attend que le module de "programme" finisse et plante alors quand cela n'arrive jamais.Le programme Python BackgroundScheduler plante quand il est exécuté depuis un autre module
Code d'erreur
/bin/bash: line 1: 13613 Killed (python) < /tmp/vIZsEfp/26
shell returned 137
fonction qui appelle le calendrier
def shedual_toggled(self,widget):
prosessSchedular.start_background_checker()
Horaire Programme
def schedul_check():
"""set up to call prosess checker every 10 mins"""
print "%s check ran" %(counter)
counter =+ 1
app = prosessCheckerv3.call_bash() < calls the bash file
if app == False:
print "error with bash"
return False
else:
prosessCheckerv3.build_snap_shot(app)
def start_background_checker():
scheduler = BackgroundScheduler()
scheduler.add_job(schedul_check, 'interval', minutes=10)
scheduler.start()
while True:
time.sleep(2)
if __name__ == '__main__':
start_background_checker()
ce programme appelle simplement une autre jamais 10 minutes. En guise de note, j'ai essayé de rester aussi loin de multi-threading que possible, mais si cela est nécessaire, soit.