49 lines
916 B
Perl
49 lines
916 B
Perl
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use utf8;
|
|
use Net::RabbitMQ;
|
|
|
|
binmode STDOUT, ':utf8';
|
|
|
|
my $host = 'broker1-dev-dnet.d4science.org';
|
|
my $user = 'r_admin';
|
|
my $passwd = '9g8fed7gpohef9y84th98h';
|
|
my $queue = 'events_queue';
|
|
|
|
my @files = @ARGV;
|
|
|
|
die "Missing input file" unless (@files);
|
|
|
|
foreach my $inputFile (@files) {
|
|
|
|
die "File does not exist" unless (-e $inputFile);
|
|
open(my $fh, '<:encoding(UTF-8)', $inputFile) or die "Could not open file '$inputFile' $!";
|
|
|
|
print "Populating $queue from file $inputFile...\n";
|
|
|
|
my $mq = Net::RabbitMQ->new();
|
|
$mq->connect($host, { user => $user, password => $passwd });
|
|
$mq->channel_open(1);
|
|
|
|
my $count = 0;
|
|
while (<$fh>) {
|
|
my $line = $_;
|
|
$mq->publish(1, $queue, $line) if ($line);
|
|
if ($count++ == 10000) {
|
|
sleep 5;
|
|
$count = 0;
|
|
}
|
|
}
|
|
close($fh);
|
|
|
|
$mq->disconnect();
|
|
|
|
print "Waiting 60 seconds...\n";
|
|
sleep 60;
|
|
}
|
|
|
|
print "Done.\n\n";
|
|
|
|
1;
|