| Foorum documentation | Contained in the Foorum distribution. |
Foorum::TheSchwartz::Worker::RemoveOldDataFromDB - remove data from database to keep it small
# check bin/cron/TheSchwartz_client.pl and bin/cron/TheSchwartz_worker.pl for usage
Remove old/useless data to keep database as small as possible. Things removed are:
Fayland Lam <fayland at gmail.com>
| Foorum documentation | Contained in the Foorum distribution. |
package Foorum::TheSchwartz::Worker::RemoveOldDataFromDB; use strict; use warnings; our $VERSION = '1.001000'; use base qw( TheSchwartz::Moosified::Worker ); use Foorum::SUtils qw/schema/; use Foorum::Logger qw/error_log/; use Foorum::XUtils qw/base_path/; use Foorum::CronUtils qw/cron_config/; sub work { my $class = shift; my $job = shift; my @args = $job->arg; my $schema = schema(); my $cron_config = cron_config(); # for table 'visit' # 2592000 = 30 * 24 * 60 * 60 my $old_time = $cron_config->{remove_db_old_data}->{visit} || 2592000; my $visit_status = $schema->resultset('Visit') ->search( { time => { '<', time() - $old_time } } )->delete; # for table 'log_path' my $days_ago = $cron_config->{remove_db_old_data}->{log_path} || 30; my $log_path_status = $schema->resultset('LogPath') ->search( { time => { '<', $days_ago * 86400 }, } )->delete; # for table 'log_error' $days_ago = $cron_config->{remove_db_old_data}->{log_error} || 30; my $log_error_status = $schema->resultset('LogError') ->search( { time => { '<', $days_ago * 86400 }, } )->delete; # for table 'banned_ip' $days_ago = $cron_config->{remove_db_old_data}->{banned_ip} || 604800; my $banned_ip_status = $schema->resultset('BannedIp') ->search( { time => { '<', time() - $days_ago }, } )->delete; # for table 'session' # 2592000 = 30 * 24 * 60 * 60 my $session_status = $schema->resultset('Session') ->search( { expires => { '<', time() }, } )->delete; error_log( $schema, 'info', <<LOG); remove_db_old_data - status: visit - $visit_status log_path - $log_path_status log_error - $log_error_status banned_ip - $banned_ip_status session - $session_status LOG $job->completed(); } 1; __END__