NAME
Forks::Queue::File - file-based implementation of Forks::Queue
VERSION
0.03
SYNOPSIS
my $q = Forks::Queue::File->new( file => "queue-file" );
$q->put( "job1" );
$q->put( { name => "job2", task => "do something", data => [42,19] } );
...
$q->end;
for my $w (1 .. $num_workers) {
if (fork() == 0) {
my $task;
while (defined($task = $q->get)) {
... perform task in child ...
}
exit;
}
}
METHODS
See Forks::Queue for an overview of the methods supported by this Forks::Queue
implementation.
new
$queue = Forks::Queue::File->new( %opts )
$queue = Forks::Queue->new( impl => 'File', %opts )
The Forks::Queue::File
constructor recognized the following configuration options.
file
The name of the file to use to score queue data and metadata. If omitted, a temporary filename is chosen.
It is strongly recommended not to use a file that would reside on an NFS filesystem, since these filesystems have notorious difficulty with synchronizing files across processes.
style
limit
on_limit
join
persist
See Forks::Queue for descriptions of these options.
BUGS AND LIMITATIONS
As with anything that requires flock
, you should avoid allowing the queue file to reside on an NFS drive.
LICENSE AND COPYRIGHT
Copyright (c) 2017, Marty O'Brien.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.
See http://dev.perl.org/licenses/ for more information.