Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5857[/thread]

Kommunikation mit andern Perl prozessen.

Leser: 1


<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten
master
 2003-10-25 18:08
#67486 #67486
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Folgendes Problem:

Ich muss driingend eine Sperre einbauen, damit mein Skript
z.B. nur noch 1 mal pro sekunde läuft.

Wie kann ich von einem anderen prozess eine variable übergeben?

Ich wollte eigentlich einfach die aktuelle Sekunde in eine MySQL DB schreiben, und wird ein weiterer prozess gestartet schaut er nach ob er schon "laufen darf", aber es wäre schöner per variable die aktuelle sperrzeit zu hinterlegen.

z.B.
Code: (dl )
1
2
3
4
$wirdgebraucht="ja";   # Anderer Prozess, der vorher gestartet wurde.

#aktueller
if($wirdgebraucht ne "") {warten}




Kurz: skript.pl darf nur alle 5 sekunden gestartet werden.
bzw. sich abarbeiten. ansonsten einfach ein "bitte warten"


Wie mach ich das?\n\n

<!--EDIT|master|1067090963-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
havi
 2003-10-25 18:15
#67487 #67487
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Ich verstehe dich so: Du aus einem Skript einem anderen Skript eine Variable uebergeben...

Wenn das dein Ziel ist, dann schau dir mal

Code: (dl )
1
2
3
4
use
# oder
require
# an


Gruss
master
 2003-10-25 18:22
#67488 #67488
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
ja, aber ohne GET,POST usw

require nützt mich nichts,
da muss ich eine datei schreiben und jede sekunde
dort erfassen plus anzahl aufrufe.
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
esskar
 2003-10-25 18:28
#67489 #67489
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wo läuft dein script?
auf einem webserver?
wenn ja, soll das script nur dann aufgerufen werden, wenn eine sekunde rum ist auch wenn man im browser auf refresh drückt bzw. jemand anders die seite besucht.
läuft dein script länger...
ein wenig mehr hintergrund info wäre sehr schön!
Ishka
 2003-10-25 18:29
#67490 #67490
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Es wäre sehr hilfreich, wenn du etwas genauer schildern würdest:
- Was soll dein Programm machen
- läuft es lokal, oder soll es remote gestartet werden
- ...
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
master
 2003-10-25 18:56
#67491 #67491
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Das skript soll pro sekunde im 1 mal arbeiten dürfen.
wenn mehr, dann eine meldung an benutzer "bitte warten"

Methode A:
Es soll also nur 1 mal pro sekunde arbeiten, dann warten bis die aktuelle sekunde rum ist.

Danach ist das "arbeiten" wieder erlaubt.
ruft man das skript früher auf, soll nur eine meldung erscheinen.


Methode B:

überziehen des skriptes erlaubten, dann einschränken.
also z.B.
Max 5 aufrufe in sekunde 1.  (schnitt 5)  
max 3 aufrufe in sekunde 2.  (schnitt 8/2  >  4)
max 2 aufrufe in sekunde 3.  (schitt 3)
max 1 aufrufe in sekunde 4.  (schnitt 2,75)
max 1 aufrufe in sekunde 5.  (12/5 = schnitt 2,4)
max 1 aufrufe in sekunde 7.  (13/7 = schnitt 1,8)
max 1 aufrufe in sekunde 10.  (14/10 = schnitt 1,4)

dann pause bis sekunde 60


der schnitt von 0,65 aufrufe pro sekunde sollte nicht zu lange überschritten werden. obiges beispiel ist also nicht gut. weil wir 10 sek. lang über dem schnitt liegen
Methode B muss ich noch austüfteln.

aber wie weiss ich zu welcher sekunde das letzt skritp aufgerufen wurde, ohne in DB oder auf fesplatte zu schreiben?



gruss\n\n

<!--EDIT|master|1067094036-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
master
 2003-10-25 18:58
#67492 #67492
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
läuft auf webserver also normal..
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
esskar
 2003-10-25 19:53
#67493 #67493
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
läuft das programm lang?
also länger als eine sekunde?

wie startest du es?
master
 2003-10-25 20:25
#67494 #67494
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
per post oder GET wird's gestartet.

läuft nicht soooo lang.
aber das ist unwichtig..


muss es begrenzen..
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
esskar
 2003-10-25 21:27
#67495 #67495
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
mir waren die infos wichtig...

du hast keine andere chance, als dir die seite in einer datei oder in einer datenbank zu merken und von dort aus zu bewerten, ob es laufen darf oder nicht...
<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten



View all threads created 2003-10-25 18:08.