mehrere scripte Paralel laufen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

Hi
Ich habe insgesammt 3 scripte in phyton geschrieben alle 3 besitzen einen wiederkehrenden lauf und sollen durchgehend laufen. Soweit funktioniert das auch aber ich hab probleme diese in ein script zu kombinieren. dieses script soll am start gestartet werden und alle 3 scripte paralel starten aber es geht irgendwie nicht. Er macht alles nur nach der reiche sprch ich mus ein script stoppen damit er den 2. startet usw.

Kann mir jemand erklären wie ich das bewältigen kann?
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
fail
User
Beiträge: 122
Registriert: Freitag 11. Januar 2013, 09:47

Wirf ein Blick auf das Modul multiprocessing
http://docs.python.org/2/library/multiprocessing.html
BlackJack

@tomtombusiness: Man startet die einfach alle drei mit `subprocess.Popen()` und wartet dann nacheinander mit der `wait()`-Methode auf den `Popen`-Objekten.
fail
User
Beiträge: 122
Registriert: Freitag 11. Januar 2013, 09:47

Ich hab angenommen er will sie importieren oder als Funktionen ausführen aber so geht's auch ^
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

auch hier habe ich das probem das er nur ein process draus macht. Sprich er führt nur das script Einzelauftraege aus. Daher die 3 scripts aber einen loop haben also sie haben quasi kein ende , wird der 2. und 3. process net aufgebaut

Mein code

Code: Alles auswählen

#!/usr/local/bin/python

# -*- coding: iso-8859-15 -*-

from multiprocessing import Process
import Einzelauftraege
import Serienauftraege
import Sofortsteuerung

name = (Einzelauftraege, Serienauftraege, Sofortsteuerung)

for i in range(3):
    Process(name(i)).start()
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
BlackJack

@tomtombusiness: Da wird überhaupt nichts ausgeführt, das bricht mit der Fehlermeldung ab, dass Tupel nicht aufrufbar sind.
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

es wird das erste script ausgeführt. ich bin ja net blöd :-D

Hat vieleicht jemand eine deutsche anleitung oder jemand lust es mir mal zu erklären?
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
BlackJack

@tomtombusiness: Okay, dann ist es ziemlich egal ob Du falschen Code in dem Modul hast, denn dann läuft das Skript offensichtlich schon beim ``import``. Schreib es so dass das nicht passiert und gut ist. Normalerweise steckt man das Hauptprogramm in eine Funktion die üblicherweise `main()` heisst. Und die wird dann am Ende vom Modul mit folgendem Idiom aufgerufen:

Code: Alles auswählen

if __name__ == '__main__':
    main()
Dann kann man das Modul direkt ausführen, aber auch importieren *ohne* das die `main()`-Funktion ausgeführt wird.

`multiprocessing` würde ich hier soweit ich das sehe übrigens als Missbrauch ansehen. Denn das verwendet man eigentlich wenn man Funktionen parallelisieren will die auch Argumente und Rückgabewerte haben die zwischen den Prozessen ausgetauscht werden. Das brauchst Du aber anscheinend alles nicht. Vielleicht reicht ja auch schon das `threading`-Modul.
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

Leider komme ich mit threading bzw thread nicht klar. Da ist alles das gleiche. Nur das erste script wird ausgeführt
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
BlackJack

@tomtombusiness: Das Problem liegt in Deinen Skripten! Der Code auf Modulebene wird beim *importieren* ausgeführt. Und wenn der nicht bis zum Ende durchläuft sondern da eine Endlosschleife drin ist, dann kommt Dein Startskript niemals über das erste ``import`` hinaus. Was man dagegen machen kann, habe ich im letzten Beitrag geschrieben.

Nur mit `subprocess.Popen()` würden die sich starten lassen ohne das man sie umschreiben muss.
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

asoo jetzt verstehe ich :-D

Aber wo finde ich das subprocess
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
BlackJack

@tomtombusiness: Das `subprocess`-Modul ist in der Standardbibliothek.
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

also Popen(DATEINAME? oder was muss hier rein)
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
BlackJack

@BlackJack: Das steht in der Dokumentation was da an Argumenten übergeben werden kann. Beispiele für die Verwendung des Moduls gibt es dort auch.
tomtombusiness
User
Beiträge: 39
Registriert: Samstag 22. März 2014, 14:24
Kontaktdaten:

kannst du mir helfen?

Ich hab halt eine daten Einzelauftraege.py und die soll damit gestartet werden und 2 andere dateien auch und das halt paralel nur ich raffs einfach net
Tutorials sind auf meiner Website zu finden.

Weiter Projektmitglieder werden Gesucht. Egal ob Profi oder Lernwilliger Anfänger
UMTS-Car Pi
ControlCar-Pi

Initiative Stottern ist ein Eisberg
Ein selbstbetroffener Stotterer erzählt von sich und seiner Intensivtherapie
Zum weiterlesen hier
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Du könntest dein Problem viel schneller lösen, wenn du einfach die Dokumentation lesen würdest und nicht alle drei Minuten nach Hilfe fragst. Dort steht ganz genau was du machen musst.
Das Leben ist wie ein Tennisball.
Antworten