Hello community,
here is the log from the commit of package perl-Minion for openSUSE:Factory checked in at 2019-08-09 16:55:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Minion (Old)
and /work/SRC/openSUSE:Factory/.perl-Minion.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Minion"
Fri Aug 9 16:55:04 2019 rev:49 rq:721974 version:9.12
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Minion/perl-Minion.changes 2019-07-17 14:27:17.683338494 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Minion.new.9556/perl-Minion.changes 2019-08-09 16:55:06.169443983 +0200
@@ -1,0 +2,13 @@
+Tue Aug 6 05:14:10 UTC 2019 - Stephan Kulow
+
+- updated to 9.12
+ see /usr/share/doc/packages/perl-Minion/Changes
+
+ 9.12 2019-08-04
+ - Added EXPERIMENTAL notes option to list_jobs method in Minion::Backend and
+ Minion::Backend::Pg.
+ - Added -n option to job command.
+ - Improved note methods in Minion::Job, Minion::Backend and
+ Minion::Backend::Pg to allow for fields to be removed.
+
+-------------------------------------------------------------------
Old:
----
Minion-9.11.tar.gz
New:
----
Minion-9.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Minion.spec ++++++
--- /var/tmp/diff_new_pack.KhiGVG/_old 2019-08-09 16:55:07.001443783 +0200
+++ /var/tmp/diff_new_pack.KhiGVG/_new 2019-08-09 16:55:07.005443782 +0200
@@ -17,7 +17,7 @@
Name: perl-Minion
-Version: 9.11
+Version: 9.12
Release: 0
%define cpan_name Minion
Summary: Job queue
++++++ Minion-9.11.tar.gz -> Minion-9.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/Changes new/Minion-9.12/Changes
--- old/Minion-9.11/Changes 2019-07-08 13:58:20.000000000 +0200
+++ new/Minion-9.12/Changes 2019-08-05 00:27:04.000000000 +0200
@@ -1,4 +1,11 @@
+9.12 2019-08-04
+ - Added EXPERIMENTAL notes option to list_jobs method in Minion::Backend and
+ Minion::Backend::Pg.
+ - Added -n option to job command.
+ - Improved note methods in Minion::Job, Minion::Backend and
+ Minion::Backend::Pg to allow for fields to be removed.
+
9.11 2019-07-08
- Added time field to list_jobs method in Minion::Backend::Pg.
- Added time field to info method in Minion::Job.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/MANIFEST new/Minion-9.12/MANIFEST
--- old/Minion-9.11/MANIFEST 2019-07-08 13:59:57.000000000 +0200
+++ new/Minion-9.12/MANIFEST 2019-08-05 11:49:53.000000000 +0200
@@ -13,6 +13,7 @@
lib/Minion.pm
lib/Minion/Backend.pm
lib/Minion/Backend/Pg.pm
+lib/Minion/Backend/resources/migrations/pg.sql
lib/Minion/Command/minion.pm
lib/Minion/Command/minion/job.pm
lib/Minion/Command/minion/worker.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/META.json new/Minion-9.12/META.json
--- old/Minion-9.11/META.json 2019-07-08 13:59:57.000000000 +0200
+++ new/Minion-9.12/META.json 2019-08-05 11:49:53.000000000 +0200
@@ -54,6 +54,6 @@
},
"x_IRC" : "irc://irc.freenode.net/#mojo"
},
- "version" : "9.11",
+ "version" : "9.12",
"x_serialization_backend" : "JSON::PP version 4.04"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/META.yml new/Minion-9.12/META.yml
--- old/Minion-9.11/META.yml 2019-07-08 13:59:56.000000000 +0200
+++ new/Minion-9.12/META.yml 2019-08-05 11:49:53.000000000 +0200
@@ -27,5 +27,5 @@
homepage: https://mojolicious.org
license: http://www.opensource.org/licenses/artistic-license-2.0
repository: https://github.com/mojolicious/minion.git
-version: '9.11'
+version: '9.12'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion/Backend/Pg.pm new/Minion-9.12/lib/Minion/Backend/Pg.pm
--- old/Minion-9.11/lib/Minion/Backend/Pg.pm 2019-07-08 13:58:20.000000000 +0200
+++ new/Minion-9.12/lib/Minion/Backend/Pg.pm 2019-08-05 11:48:01.000000000 +0200
@@ -2,6 +2,7 @@
use Mojo::Base 'Minion::Backend';
use Carp 'croak';
+use Mojo::File 'path';
use Mojo::IOLoop;
use Mojo::Pg 4.0;
use Sys::Hostname 'hostname';
@@ -88,10 +89,11 @@
extract(epoch from started) as started, state, task,
extract(epoch from now()) as time, count(*) over() as total, worker
from minion_jobs as j
- where (id = any ($1) or $1 is null) and (queue = any ($2) or $2 is null)
- and (state = any ($3) or $3 is null) and (task = any ($4) or $4 is null)
+ where (id = any ($1) or $1 is null) and (notes \? any ($2) or $2 is null)
+ and (queue = any ($3) or $3 is null) and (state = any ($4) or $4 is null)
+ and (task = any ($5) or $5 is null)
order by id desc
- limit $5 offset $6', @$options{qw(ids queues states tasks)}, $limit,
+ limit $6 offset $7', @$options{qw(ids notes queues states tasks)}, $limit,
$offset
)->expand->hashes->to_array;
@@ -140,7 +142,9 @@
if $db->dbh->{pg_server_version} < 90500;
$db->disconnect;
- $self->pg->auto_migrate(1)->migrations->name('minion')->from_data;
+ my $schema
+ = path(__FILE__)->dirname->child('resources', 'migrations', 'pg.sql');
+ $self->pg->auto_migrate(1)->migrations->name('minion')->from_file($schema);
return $self;
}
@@ -148,8 +152,10 @@
sub note {
my ($self, $id, $merge) = @_;
return !!$self->pg->db->query(
- 'update minion_jobs set notes = notes || ? where id = ?',
- {json => $merge}, $id)->rows;
+ 'update minion_jobs set notes = jsonb_strip_nulls(notes || ?) where id = ?',
+ {json => $merge},
+ $id
+ )->rows;
}
sub receive {
@@ -537,6 +543,13 @@
List only jobs with these ids.
+=item notes
+
+ notes => ['foo', 'bar']
+
+List only jobs with one of these notes. Note that this option is EXPERIMENTAL
+and might change without warning!
+
=item queues
queues => ['important', 'unimportant']
@@ -828,7 +841,8 @@
my $bool = $backend->note($job_id, {mojo => 'rocks', minion => 'too'});
-Change one or more metadata fields for a job.
+Change one or more metadata fields for a job. Setting a value to C<undef> will
+remove the field.
=head2 receive
@@ -1011,135 +1025,3 @@
L<Minion>, LMojolicious::Guides, Lhttps://mojolicious.org.
=cut
-
-__DATA__
-
-@@ minion
--- 1 up
-create table if not exists minion_jobs (
- id bigserial not null primary key,
- args json not null,
- created timestamp with time zone not null,
- delayed timestamp with time zone not null,
- finished timestamp with time zone,
- priority int not null,
- result json,
- retried timestamp with time zone,
- retries int not null,
- started timestamp with time zone,
- state text not null,
- task text not null,
- worker bigint
-);
-create table if not exists minion_workers (
- id bigserial not null primary key,
- host text not null,
- pid int not null,
- started timestamp with time zone not null
-);
-
--- 1 down
-drop table if exists minion_jobs;
-drop table if exists minion_workers;
-
--- 2 up
-alter table minion_jobs alter column created set default now();
-alter table minion_jobs alter column state set default 'inactive';
-alter table minion_jobs alter column retries set default 0;
-alter table minion_workers add column
- notified timestamp with time zone not null default now();
-alter table minion_workers alter column started set default now();
-
--- 4 up
-alter table minion_jobs add column queue text not null default 'default';
-
--- 5 up
-alter table minion_jobs add column attempts int not null default 1;
-
--- 7 up
-create type minion_state as enum ('inactive', 'active', 'failed', 'finished');
-alter table minion_jobs alter column state set default 'inactive'::minion_state;
-alter table minion_jobs
- alter column state type minion_state using state::minion_state;
-alter table minion_jobs alter column args type jsonb using args::jsonb;
-alter table minion_jobs alter column result type jsonb using result::jsonb;
-
--- 7 down
-alter table minion_jobs alter column state type text using state;
-alter table minion_jobs alter column state set default 'inactive';
-drop type if exists minion_state;
-
--- 8 up
-alter table minion_jobs add constraint args check(jsonb_typeof(args) = 'array');
-
--- 9 up
-create or replace function minion_jobs_notify_workers() returns trigger as $$
- begin
- if new.delayed <= now() then
- notify "minion.job";
- end if;
- return null;
- end;
-$$ language plpgsql;
-set client_min_messages to warning;
-drop trigger if exists minion_jobs_insert_trigger on minion_jobs;
-drop trigger if exists minion_jobs_notify_workers_trigger on minion_jobs;
-set client_min_messages to notice;
-create trigger minion_jobs_notify_workers_trigger
- after insert or update of retries on minion_jobs
- for each row execute procedure minion_jobs_notify_workers();
-
--- 9 down
-drop trigger if exists minion_jobs_notify_workers_trigger on minion_jobs;
-drop function if exists minion_jobs_notify_workers();
-
--- 10 up
-alter table minion_jobs add column parents bigint[] not null default '{}';
-
--- 11 up
-create index on minion_jobs (state, priority desc, id);
-
--- 12 up
-alter table minion_workers add column inbox jsonb
- check(jsonb_typeof(inbox) = 'array') not null default '[]';
-
--- 15 up
-alter table minion_workers add column status jsonb
- check(jsonb_typeof(status) = 'object') not null default '{}';
-
--- 16 up
-create index on minion_jobs using gin (parents);
-create table if not exists minion_locks (
- id bigserial not null primary key,
- name text not null,
- expires timestamp with time zone not null
-);
-
--- 16 down
-drop table if exists minion_locks;
-
--- 17 up
-alter table minion_jobs add column notes jsonb
- check(jsonb_typeof(notes) = 'object') not null default '{}';
-alter table minion_locks set unlogged;
-create index on minion_locks (name, expires);
-
--- 18 up
-create or replace function minion_lock(text, int, int) returns bool as $$
-declare
- new_expires timestamp with time zone = now() + (interval '1 second' * $2);
-begin
- lock table minion_locks in exclusive mode;
- delete from minion_locks where expires < now();
- if (select count(*) >= $3 from minion_locks where name = $1) then
- return false;
- end if;
- if new_expires > now() then
- insert into minion_locks (name, expires) values ($1, new_expires);
- end if;
- return true;
-end;
-$$ language plpgsql;
-
--- 18 down
-drop function if exists minion_lock(text, int, int);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion/Backend/resources/migrations/pg.sql new/Minion-9.12/lib/Minion/Backend/resources/migrations/pg.sql
--- old/Minion-9.11/lib/Minion/Backend/resources/migrations/pg.sql 1970-01-01 01:00:00.000000000 +0100
+++ new/Minion-9.12/lib/Minion/Backend/resources/migrations/pg.sql 2019-08-05 11:46:54.000000000 +0200
@@ -0,0 +1,136 @@
+--
+-- These are the migrations for the PostgreSQL Minion backend. They are only
+-- used for upgrades to the latest version. Downgrades may be used to clean up
+-- the database, but they do not have to work with old versions of Minion.
+--
+-- 1 up
+create table if not exists minion_jobs (
+ id bigserial not null primary key,
+ args json not null,
+ created timestamp with time zone not null,
+ delayed timestamp with time zone not null,
+ finished timestamp with time zone,
+ priority int not null,
+ result json,
+ retried timestamp with time zone,
+ retries int not null,
+ started timestamp with time zone,
+ state text not null,
+ task text not null,
+ worker bigint
+);
+create table if not exists minion_workers (
+ id bigserial not null primary key,
+ host text not null,
+ pid int not null,
+ started timestamp with time zone not null
+);
+
+-- 1 down
+drop table if exists minion_jobs;
+drop table if exists minion_workers;
+
+-- 2 up
+alter table minion_jobs alter column created set default now();
+alter table minion_jobs alter column state set default 'inactive';
+alter table minion_jobs alter column retries set default 0;
+alter table minion_workers add column
+ notified timestamp with time zone not null default now();
+alter table minion_workers alter column started set default now();
+
+-- 4 up
+alter table minion_jobs add column queue text not null default 'default';
+
+-- 5 up
+alter table minion_jobs add column attempts int not null default 1;
+
+-- 7 up
+create type minion_state as enum ('inactive', 'active', 'failed', 'finished');
+alter table minion_jobs alter column state set default 'inactive'::minion_state;
+alter table minion_jobs
+ alter column state type minion_state using state::minion_state;
+alter table minion_jobs alter column args type jsonb using args::jsonb;
+alter table minion_jobs alter column result type jsonb using result::jsonb;
+
+-- 7 down
+alter table minion_jobs alter column state type text using state;
+alter table minion_jobs alter column state set default 'inactive';
+drop type if exists minion_state;
+
+-- 8 up
+alter table minion_jobs add constraint args check(jsonb_typeof(args) = 'array');
+
+-- 9 up
+create or replace function minion_jobs_notify_workers() returns trigger as $$
+ begin
+ if new.delayed <= now() then
+ notify "minion.job";
+ end if;
+ return null;
+ end;
+$$ language plpgsql;
+set client_min_messages to warning;
+drop trigger if exists minion_jobs_insert_trigger on minion_jobs;
+drop trigger if exists minion_jobs_notify_workers_trigger on minion_jobs;
+set client_min_messages to notice;
+create trigger minion_jobs_notify_workers_trigger
+ after insert or update of retries on minion_jobs
+ for each row execute procedure minion_jobs_notify_workers();
+
+-- 9 down
+drop trigger if exists minion_jobs_notify_workers_trigger on minion_jobs;
+drop function if exists minion_jobs_notify_workers();
+
+-- 10 up
+alter table minion_jobs add column parents bigint[] not null default '{}';
+
+-- 11 up
+create index on minion_jobs (state, priority desc, id);
+
+-- 12 up
+alter table minion_workers add column inbox jsonb
+ check(jsonb_typeof(inbox) = 'array') not null default '[]';
+
+-- 15 up
+alter table minion_workers add column status jsonb
+ check(jsonb_typeof(status) = 'object') not null default '{}';
+
+-- 16 up
+create index on minion_jobs using gin (parents);
+create table if not exists minion_locks (
+ id bigserial not null primary key,
+ name text not null,
+ expires timestamp with time zone not null
+);
+
+-- 16 down
+drop table if exists minion_locks;
+
+-- 17 up
+alter table minion_jobs add column notes jsonb
+ check(jsonb_typeof(notes) = 'object') not null default '{}';
+alter table minion_locks set unlogged;
+create index on minion_locks (name, expires);
+
+-- 18 up
+create or replace function minion_lock(text, int, int) returns bool as $$
+declare
+ new_expires timestamp with time zone = now() + (interval '1 second' * $2);
+begin
+ lock table minion_locks in exclusive mode;
+ delete from minion_locks where expires < now();
+ if (select count(*) >= $3 from minion_locks where name = $1) then
+ return false;
+ end if;
+ if new_expires > now() then
+ insert into minion_locks (name, expires) values ($1, new_expires);
+ end if;
+ return true;
+end;
+$$ language plpgsql;
+
+-- 18 down
+drop function if exists minion_lock(text, int, int);
+
+-- 19 up
+create index on minion_jobs using gin (notes);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion/Backend.pm new/Minion-9.12/lib/Minion/Backend.pm
--- old/Minion-9.11/lib/Minion/Backend.pm 2019-07-08 13:58:20.000000000 +0200
+++ new/Minion-9.12/lib/Minion/Backend.pm 2019-08-05 00:22:22.000000000 +0200
@@ -278,6 +278,13 @@
List only jobs with these ids.
+=item notes
+
+ notes => ['foo', 'bar']
+
+List only jobs with one of these notes. Note that this option is EXPERIMENTAL
+and might change without warning!
+
=item queues
queues => ['important', 'unimportant']
@@ -565,8 +572,8 @@
my $bool = $backend->note($job_id, {mojo => 'rocks', minion => 'too'});
-Change one or more metadata fields for a job. Meant to be overloaded in a
-subclass.
+Change one or more metadata fields for a job. Setting a value to C<undef>
+will remove the field. Meant to be overloaded in a subclass.
=head2 receive
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion/Command/minion/job.pm new/Minion-9.12/lib/Minion/Command/minion/job.pm
--- old/Minion-9.11/lib/Minion/Command/minion/job.pm 2019-05-31 21:45:13.000000000 +0200
+++ new/Minion-9.12/lib/Minion/Command/minion/job.pm 2019-08-04 23:39:45.000000000 +0200
@@ -21,6 +21,7 @@
'H|history' => \my $history,
'L|locks' => \my $locks,
'l|limit=i' => \(my $limit = 100),
+ 'n|notes=s' => sub { $opts->{notes} = decode_json($_[1]) },
'o|offset=i' => \(my $offset = 0),
'P|parent=s' => sub { push @{$opts->{parents}}, $_[1] },
'p|priority=i' => \$opts->{priority},
@@ -120,8 +121,10 @@
./myapp.pl minion job -q important -t foo -t bar -S inactive
./myapp.pl minion job -e foo -a '[23, "bar"]'
./myapp.pl minion job -e foo -P 10023 -P 10024 -p 5 -q important
+ ./myapp.pl minion job -e 'foo' -n '{"test":123}'
./myapp.pl minion job -R -d 10 10023
./myapp.pl minion job --remove 10023
+ ./myapp.pl minion job -n '["test"]'
./myapp.pl minion job -L
./myapp.pl minion job -L some_lock some_other_lock
./myapp.pl minion job -b jobs -a '[12]'
@@ -150,6 +153,8 @@
-m, --mode <name> Operating mode for your application, defaults to
the value of MOJO_MODE/PLACK_ENV or
"development"
+ --n, notes <JSON> Notes in JSON format for new job or list only
+ jobs with one of these notes
-o, --offset <number> Number of jobs/workers to skip when listing
them, defaults to 0
-P, --parent <id> One or more jobs the new job depends on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion/Job.pm new/Minion-9.12/lib/Minion/Job.pm
--- old/Minion-9.11/lib/Minion/Job.pm 2019-07-08 13:58:20.000000000 +0200
+++ new/Minion-9.12/lib/Minion/Job.pm 2019-08-05 00:26:21.000000000 +0200
@@ -262,7 +262,8 @@
my $err = $job->execute;
Perform job in this process and return C<undef> if the task was successful or an
-exception otherwise.
+exception otherwise. Note that this method should only be used to implement
+custom workers.
# Perform job in foreground
if (my $err = $job->execute) { $job->fail($err) }
@@ -419,22 +420,25 @@
my $bool = $job->is_finished;
-Check if job performed with L"start"> is finished.
+Check if job performed with L"start"> is finished. Note that this method
+should only be used to implement custom workers.
=head2 kill
$job->kill('INT');
-Send a signal to job performed with L"start">.
+Send a signal to job performed with L"start">. Note that this method should
+only be used to implement custom workers.
=head2 note
my $bool = $job->note(mojo => 'rocks', minion => 'too');
-Change one or more metadata fields for this job. The new values will get
-serialized by L (often with LMojo::JSON), so you shouldn't
-send objects and be careful with binary data, nested data structures with hash
-and array references are fine though.
+Change one or more metadata fields for this job. Setting a value to C<undef>
+will remove the field. The new values will get serialized by L
+(often with LMojo::JSON), so you shouldn't send objects and be careful with
+binary data, nested data structures with hash and array references are fine
+though.
# Share progress information
$job->note(progress => 95);
@@ -446,13 +450,15 @@
$job->perform;
-Perform job in new process and wait for it to finish.
+Perform job in new process and wait for it to finish. Note that this method
+should only be used to implement custom workers.
=head2 pid
my $pid = $job->pid;
-Process id of the process spawned by L"start"> if available.
+Process id of the process spawned by L"start"> if available. Note that this
+method should only be used to implement custom workers.
=head2 remove
@@ -508,7 +514,8 @@
$job = $job->start;
-Perform job in new process, but do not wait for it to finish.
+Perform job in new process, but do not wait for it to finish. Note that this
+method should only be used to implement custom workers.
# Perform two jobs concurrently
$job1->start;
@@ -521,7 +528,8 @@
$job->stop;
-Stop job performed with L"start"> immediately.
+Stop job performed with L"start"> immediately. Note that this method should
+only be used to implement custom workers.
=head1 SEE ALSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion/Worker.pm new/Minion-9.12/lib/Minion/Worker.pm
--- old/Minion-9.11/lib/Minion/Worker.pm 2019-05-31 21:45:12.000000000 +0200
+++ new/Minion-9.12/lib/Minion/Worker.pm 2019-08-04 23:35:24.000000000 +0200
@@ -382,7 +382,7 @@
$worker->run;
-Run worker and wait for L"SIGNALS">.
+Run worker and wait for L"WORKER SIGNALS">.
These L"status"> options are currently available:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/lib/Minion.pm new/Minion-9.12/lib/Minion.pm
--- old/Minion-9.11/lib/Minion.pm 2019-07-08 13:58:20.000000000 +0200
+++ new/Minion-9.12/lib/Minion.pm 2019-08-04 23:24:47.000000000 +0200
@@ -22,7 +22,7 @@
has remove_after => 172800;
has tasks => sub { {} };
-our $VERSION = '9.11';
+our $VERSION = '9.12';
sub add_task { ($_[0]->tasks->{$_[1]} = $_[2]) and return $_[0] }
@@ -808,7 +808,8 @@
my $worker = $minion->worker;
-Build LMinion::Worker object.
+Build LMinion::Worker object. Note that this method should only be used to
+implement custom workers.
# Use the standard worker with all its features
my $worker = $minion->worker;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-9.11/t/pg.t new/Minion-9.12/t/pg.t
--- old/Minion-9.11/t/pg.t 2019-07-08 13:58:20.000000000 +0200
+++ new/Minion-9.12/t/pg.t 2019-08-05 00:24:36.000000000 +0200
@@ -24,11 +24,11 @@
isa_ok $worker->minion->app, 'Mojolicious', 'has default application';
# Migrate up and down
-is $minion->backend->pg->migrations->active, 18, 'active version is 18';
+is $minion->backend->pg->migrations->active, 19, 'active version is 19';
is $minion->backend->pg->migrations->migrate(0)->active, 0,
'active version is 0';
-is $minion->backend->pg->migrations->migrate->active, 18,
- 'active version is 18';
+is $minion->backend->pg->migrations->migrate->active, 19,
+ 'active version is 19';
# Register and unregister
$worker->register;
@@ -422,6 +422,11 @@
is $batch->[2]{queue}, 'default', 'right queue';
is $batch->[3]{queue}, 'default', 'right queue';
ok !$batch->[4], 'no more results';
+$id2 = $minion->enqueue('test' => [] => {notes => {is_test => 1}});
+$batch = $minion->backend->list_jobs(0, 10, {notes => ['is_test']})->{jobs};
+is $batch->[0]{task}, 'test', 'right task';
+ok !$batch->[4], 'no more results';
+ok $minion->job($id2)->remove, 'job removed';
$batch
= $minion->backend->list_jobs(0, 10, {queues => ['does_not_exist']})->{jobs};
is_deeply $batch, [], 'no results';
@@ -711,6 +716,9 @@
};
is_deeply $job->info->{notes}, $notes, 'right metadata';
is_deeply $job->info->{result}, [{23 => 'testtesttest'}], 'right structure';
+ok $job->note(yada => undef, bar => undef), 'removed metadata';
+$notes = {foo => [4, 5, 6], baz => 'yada'};
+is_deeply $job->info->{notes}, $notes, 'right metadata';
$worker->unregister;
# Perform job in a running event loop