NAME

Queue::Q4M - Simple Interface To q4m

SYNOPSIS

use Queue::Q4M;

my $q = Queue::Q4M->connect(
  connect_info => [
    'dbi:mysql:dbname=mydb',
    $username,
    $password
  ],
);

for (1..10) {
  $q->insert($table, \%fieldvals);
}

while ($q->next($table)) {
  my ($col1, $col2, $col3) = $q->fetch($table, \@fields);
  print "col1 = $col1, col2 = $col2, col3 = $col3\n";
}

while ($q->next($table)) {
  my $cols = $q->fetch_arrayref($table, \@fields);
  print "col1 = $cols->[0], col2 = $cols->[1], col3 = $cols->[2]\n";
}

while ($q->next($table)) {
  my $cols = $q->fetch_hashref($table, \@fields);
  print "col1 = $cols->{col1}, col2 = $cols->{col2}, col3 = $cols->{col3}\n";
}

# to use queue_wait(table_cond1,table_cond2,timeout)
while (my $which = $q->next(@table_conds)) {
  # $which contains the table name
}

$q->disconnect;

DESCRIPTION

Queue::Q4M is a simple wrapper to q4m, which is an implementation of a queue using mysql.

METHODS

new

Creates a new Queue::Q4M instance. Normally you should use connect() instead.

connect

Connects to the target database.

my $q = Queue::Q4M->connect(
  connect_info => [
    'dbi:mysql:dbname=q4m',
  ]
);

next($table_cond1[, $table_cond2, $table_cond3, ..., $timeout])

Blocks until the next item is available. This is equivalent to calling queue_wait() on the given table.

my $which = $q->next( $table_cond1, $table_cond2, $table_cond3 );

fetch

fetch_array

Fetches the next available row. Takes the list of columns to be fetched.

my ($col1, $col2, $col3) = $q->fetch( $table, [ qw(col1 col2 col3) ] );

fetch_arrayref

Same as fetch_array, but fetches using fetchrow_arrayref()

my $arrayref = $q->fetch_arrayref( $table, [ qw(col1 col2 col3) ] );

fetch_hashref

Same as fetch_array, but fetches using fetchrow_hashref()

my $hashref = $q->fetch_hashref( $table, [ qw(col1 col2 col3) ] );

insert($table, \%field)

Inserts into the queue. The first argument should be a scalar specifying a table name. The second argument is a hashref that specifies the mapping between column names and their respective values.

$q->insert($table, { col1 => $val1, col2 => $val2, col3 => $val3 });

For backwards compatibility, you may omit $table if you specified $table in the constructor.

clear($table)

Deletes everything the specified queue. Be careful!

dbh

Returns the database handle after making sure that it's connected.

disconnect

Disconnects.

BUILD

DEMOLISH

These are defined as part of Moose infrastructure

AUTHOR

Copyright (c) 2008 Daisuke Maki <daisuke@endeworks.jp>

CONTRIBUTOR

Taro Funaki

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html