Data::Queue::Persistent - Perisistent database-backed queue
use Data::Queue::Persistent; my $q = Data::Queue::Persistent->new( table => 'persistent_queue', # name to save queues in dsn => 'dbi:SQLite:dbname=queue.db', # dsn for database to save queues id => 'testqueue', # queue identifier cache => 1, noload => 1, # don't load saved queue automatically max_size => 100, # limit to 100 items ); $q->add('first', 'second', 'third', 'fourth'); $q->remove; # returns 'first' $q->remove(2); # returns ('second', 'third') $q->empty; # removes everything
This is a simple module to keep a persistent queue around. It is just a normal implementation of a queue, except it is backed by a database so that when your program exits the data won't disappear.
None by default.
new(%opts)
Creates a new persistent data queue object. This will also initialize the database storage, and load the saved queue data if it already exists.
Options:
dsn: DSN for database connection.
dbh: Already initialized DBI connection handle.
id: The ID of this queue. You can have multiple queues stored in the same table, distinguished by their IDs.
user: The username for database connection (optional).
pass: The password for database connection (optional).
cache: Enable caching of the queue for speed. Not reccommended if multiple instances of the queue will be used concurrently. Default is 0.
table: The table name to use ('persistent_queue' by default).
noload: Don't load queue data when initialized (only applicable if caching is used)
max_size: Limit the queue to max_size, with the oldest elements falling off
add(@items)
Adds a list of items to the queue.
remove($count)
Removes $count (1 by default) items from the queue and returns them. Returns value if no $count specified, otherwise returns an array of values.
get([$offset[, $length]])
Gets $length elements starting at offset $offset
all
Returns all elements in the queue. Does not modify the queue.
length
Returns count of elements in the queue.
empty
Removes all elements from the queue.
unshift(@items)
Alias for add(@items).
shift($count)
Alias for remove($count).
Any data structures book.
Mischa Spiegelmock, <mspiegelmock@gmail.com>
Copyright (C) 2007 by Mischa Spiegelmock
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.
To install Data::Queue::Persistent, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Queue::Persistent
CPAN shell
perl -MCPAN -e shell install Data::Queue::Persistent
For more information on module installation, please visit the detailed CPAN module installation guide.