]> iEval git - gruntmaster-page.git/blobdiff - lib/Gruntmaster/Data.pm
Add gruntmaster-job
[gruntmaster-page.git] / lib / Gruntmaster / Data.pm
index 544a6d060613d816a305c5e3ea6700a351523116..2f8a18470a1965c0e154dfad1c5de4cce0c1bbda 100644 (file)
@@ -9,6 +9,7 @@ use Redis;
 
 our $contest;
 my $redis = Redis->new;
+my $pubsub = Redis->new;
 
 sub dynsub{
        no strict 'refs';
@@ -16,9 +17,13 @@ sub dynsub{
 }
 
 BEGIN {
-       for my $cmd (qw/multi exec smembers get hget hset sadd srem incr hmset hsetnx/) {
+       for my $cmd (qw/multi exec smembers get hget hdel hset sadd srem incr hmset hsetnx/) {
                dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $redis->$cmd(@_) };
        }
+
+       for my $cmd (qw/publish subscribe wait_for_messages/) {
+               dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $pubsub->$cmd(@_) };
+       }
 }
 
 sub cp { defined $contest ? "contest.$contest." : '' }
@@ -59,12 +64,18 @@ sub defhash{
        dynsub "push_$name", sub {
                my $nr = INCR cp . $name;
                HMSET cp . "$name.$nr", @_;
+               $nr
        };
 }
 
 defhash problem => qw/name level statement/;
 defhash contest => qw/start end name owner/;
-defhash job => qw/date file name private problem result result_text user/;
+defhash job => qw/date extension filesize private problem result result_text user/;
+defhash user => qw/name email town university/;
+
+sub clean_job (_){
+       HDEL cp . "job.$_[0]", qw/result result_text results daemon/
+}
 
 our @EXPORT_OK = do {
        no strict 'refs';
This page took 0.021099 seconds and 4 git commands to generate.