use open ':utf8';
-my ($count, $config, $sleep_interval, $lockfile, $daemon) = (1, 'SYSCONFDIR/opensrf_core.xml', 10, '/tmp/reporter-LOCK');
+my ($opt_count, $config, $sleep_interval, $lockfile, $daemon) = (1, 'SYSCONFDIR/opensrf_core.xml', 10, '/tmp/reporter-LOCK');
-# set upper bound on number of rows in the resultset
-# before Clark refuses to try to draw a chart
-my $max_rows_for_charts = 1000;
-my $statement_timeout = 60;
-my $resultset_limit;
+my $opt_max_rows_for_charts;
+my $opt_statement_timeout;
+my $opt_resultset_limit;
GetOptions(
"daemon" => \$daemon,
"sleep=i" => \$sleep_interval,
- "concurrency=i" => \$count,
- "max-rows-for-charts=i" => \$max_rows_for_charts,
- "resultset-limit=i" => \$resultset_limit,
- "statement-timeout=i" => \$statement_timeout,
+ "concurrency=i" => \$opt_count,
+ "max-rows-for-charts=i" => \$opt_max_rows_for_charts,
+ "resultset-limit=i" => \$opt_resultset_limit,
+ "statement-timeout=i" => \$opt_statement_timeout,
"bootstrap|boostrap=s" => \$config,
"lockfile=s" => \$lockfile,
);
my $state_dsn = "dbi:" . $state_db{db_driver} . ":dbname=" . $state_db{db_name} .';host=' . $state_db{db_host} . ';port=' . $state_db{db_port};
my $data_dsn = "dbi:" . $data_db{db_driver} . ":dbname=" . $data_db{db_name} .';host=' . $data_db{db_host} . ';port=' . $data_db{db_port};
+my $count = $opt_count //
+ $sc->config_value( reporter => setup => 'parallel' ) //
+ 1;
+$count = 1 unless $count =~ /^\d+$/ && $count > 0;
+my $statement_timeout = $opt_statement_timeout //
+ $sc->config_value( reporter => setup => 'statement_timeout' ) //
+ 60;
+$statement_timeout = 60 unless $statement_timeout =~ /^\d+$/;
+my $max_rows_for_charts = $opt_max_rows_for_charts //
+ $sc->config_value( reporter => setup => 'max_rows_for_charts' ) //
+ 1000;
+$max_rows_for_charts = 1000 unless $max_rows_for_charts =~ /^\d+$/;
+my $resultset_limit = $opt_resultset_limit //
+ $sc->config_value( reporter => setup => 'resultset_limit' );
+
my ($dbh,$running,$sth,@reports,$run, $current_time);
if ($daemon) {