Thread Daten mit JSON permant speichern (5 answers)
Opened by Kuerbis at 2012-04-29 09:58

rosti
 2012-04-29 19:16
#157950 #157950
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
2012-04-29T16:54:57 Kuerbis
Dann liege ich mit meinem Beispiel nicht ganz daneben.

An das Datei locken habe ich nicht gedacht - das würde es wieder ein bisschen komplizierter machen.


flock() ist keine Hexerei. Wenn Du darauf verzichten möchtest, flock() in bisherige Scripts einzubauen, Idee:

Code (perl): (dl )
use Lock;


Das Modul sieht so aus:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Ermöglicht ein globales Lock auf Perl-Prozesse
package Lock;

use strict;
use warnings;
use Fcntl qw(:flock);
use IO::File;

my $self = {
        file => '/home/lockfile',
        FH => undef,
};

sub import{
        my $class = shift;
        $self->{FH} = IO::File->new or die "Can't get a FileHandle";
        $self->{FH}->open($self->{file}, O_CREAT|O_RDWR) or die "IO-Error: $!";
        flock($self->{FH}, LOCK_EX) or warn 'Your system does not support flock()';
}
1; ########################################################################


Und selbstverständlich kann das Lockfile auch (namentlich) importiert werden. Ich nutze das kleine Modul so wie es oben steht, jedes Script, was das Modul einbindet, wird somit atomar, selbst wenn darin mehrere Dateien beschrieben werden oder in eine DB geschrieben werden soll.

View full thread Daten mit JSON permant speichern