Ich schreibe ein Python-Skript, das dem Benutzer zwei Optionen bietet. In einer Option wird die Benutzereingabe zum Ausführen einer Funktion im Hintergrund verwendet. In anderen Fällen wird die Benutzereingabe zum Ausführen einer Funktion im Vordergrund verwendet. Wie kann ich beides erreichen? Ich möchte den Befehl "nohup" nicht verwenden, um das vollständige Skript im Hintergrund auszuführen. Ich möchte nur eine bestimmte Funktion im Hintergrund ausführen.Ausführen eines Teils von Python-Code im Hintergrund
Ich möchte auch den Hintergrundprozess auf Willen des Benutzers zu stoppen.
Hier ist eine kleine Auswahl dessen, was ich tun möchte:
def display():
cnt = 1
a = []
if len(live_matches) == 0:
print "sorry, no live matches currently"
else:
for match in live_matches:
print str(cnt) + "." + match['mchdesc'] + "," + match['mnum']
a[cnt] = match
cnt = cnt + 1
choice = raw_input("Enter the match numbers for live updates separated by spaces")
for c in choice.split(' '):
update_matches.append(a[int(c)])
if len(update_matches) > 0:
#call some function and run in background
cnt = 1
for match in completed_matches:
print str(cnt) + "." + match['mchdesc'] + "," + match['mnum']
cnt = cnt + 1
choice = raw_input("enter the match number for scorecard")
#call some function again but run it in foreground
[Sellerie] (http://www.celeryproject.org/) – Harrison
Verwenden Sie die [Multiprocessing] (https://docs.python.org/2/library/multiprocessing.html?highlight=multiprocessing#module-multiprocessing) Standard-Python-Modul, um Ihre Funktion im Hintergrund auszuführen. – mguijarr
Sie meinen, diese Funktionen async/sync auszuführen? – danielfranca