Ich war ein bisschen neugierig, ob ich mehr Arbeit in einer Funktion machen könnte, nachdem ich ein Ergebnis zurückgegeben habe. Im Grunde mache ich eine Website mit dem Pyramiden-Framework (das einfach in Python codiert), nachdem ich die Eingaben verarbeitet habe. Ich gebe Variablen zurück, um die Seite zu rendern, aber manchmal möchte ich nach dem Rendern der Seite mehr arbeiten.Gibt es eine Möglichkeit, nach einer Rücksendeanweisung mehr Arbeit zu leisten?
Zum Beispiel kommen Sie auf meine Website und aktualisieren Sie Ihr Profil und alles, was Sie interessieren, ist, dass es erfolgreich ist, so dass ich eine Nachricht mit dem Titel "Erfolg!" aber danach möchte ich dein Update nehmen und meine Aktivitäts-Logs aktualisieren, was du tust, deine Aktivitäts-Streams für deine Freunde aktualisierst usw. Momentan mache ich das alles, bevor ich den Ergebnisstatus zurückgebe, der dir wichtig ist, aber ich ' Ich bin neugierig, ob ich es nachher kann, damit die Benutzer ihre Antworten schneller bekommen.
Ich habe multi-processing vor und schlimmsten Fall gemacht ich könnte nur einen Thread fork diese Arbeit tun, aber wenn es eine Möglichkeit gab, nach einer return-Anweisung Arbeit zu tun, dann wäre das einfacher.
Beispiel:
def profile_update(inputs):
#take updates and update the database
return "it worked"
#do maintainence processing now..
Ich bin nicht vertraut mit Python-Threading, aber die meisten Threading-Modelle, starten einen Thread ist so einfach wie das Aufrufen einer Funktion. Die Komplexität entsteht dadurch, dass sichergestellt wird, dass die Arbeit, die im Thread erledigt wird, mit den Dingen synchronisiert wird, die asynchron zum Thread ablaufen. Es scheint mir, dass Komplexität in gleichem Maße mit dem existiert, was Sie im '#do maintainence process now..' Post-Return-Schritt erreichen möchten. Sollte dort keine Synchronisation notwendig sein, sollte in einem Thread keines notwendig sein. Aber das Gegenteil ist auch wahr. –