Changeset 2337
- Timestamp:
- 05/14/08 23:35:55 (21 months ago)
- Location:
- branches/release-38
- Files:
-
- 3 modified
-
lib/MT/TheSchwartz.pm (modified) (4 diffs)
-
lib/MT/Worker/Publish.pm (modified) (3 diffs)
-
tools/run-periodic-tasks (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-38/lib/MT/TheSchwartz.pm
r2336 r2337 30 30 my $class = shift; 31 31 $class->instance->SUPER::insert(@_); 32 } 33 34 sub default_logger { 35 my ($msg, $job) = @_; 36 # suppress TheSchwartz::Job's 'job completed' 37 return if $msg eq 'job completed'; 38 39 $msg =~ s/\s+$//; 40 print STDERR "$msg\n"; 32 41 } 33 42 … … 41 50 # Reports object usage inbetween jobs if Devel::Leak::Object is loaded 42 51 $OBJECT_REPORT = 1 if $Devel::Leak::Object::VERSION; 52 53 $param{verbose} = \&default_logger 54 if $param{verbose} && (ref $param{verbose} ne 'CODE'); 43 55 44 56 my $client = $class->SUPER::new(%param); … … 134 146 my $did_work = 0; 135 147 148 # holds state of objects at start 149 my %obj_start; 136 150 if ($OBJECT_REPORT) { 137 Devel::Leak::Object::status(); 138 print "\n\n"; 151 %obj_start = %Devel::Leak::Object::OBJECT_COUNT; 139 152 } 140 153 141 154 while (1) { 155 my %obj_pre; 156 if ($OBJECT_REPORT) { 157 %obj_pre = %Devel::Leak::Object::OBJECT_COUNT; 158 } 159 142 160 if ($client->work_once) { 143 161 $did_work = 1; … … 157 175 $did_work = 0; 158 176 if ($OBJECT_REPORT) { 159 Devel::Leak::Object::status(); 160 print "\n\n"; 177 leak_report(\%obj_start, \%obj_pre, \%Devel::Leak::Object::OBJECT_COUNT); 161 178 } 162 179 } 163 180 164 181 sleep $delay; 182 } 183 } 184 185 our %persistent; 186 BEGIN { 187 %persistent = map { $_ => 1 } qw( MT::Task MT::Plugin MT::Component MT::ArchiveType MT::TaskMgr MT::WeblogPublisher MT::Serializer TheSchwartz::Job TheSchwartz::JobHandle ); 188 } 189 sub leak_report { 190 my ($start, $pre, $post) = @_; 191 my $reported; 192 foreach my $class (sort keys %$post) { 193 # skip reporting classes that are persistent in nature 194 next if exists $persistent{$class}; 195 196 my $post_count = $post->{$class}; 197 next if ! $post_count; 198 my $pre_count = $pre->{$class} || 0; 199 my $start_count = $start->{$class} || 0; 200 next if $post_count == 1; # ignores most singletons 201 if (($pre_count != $post_count) || ($post_count != $start_count)) { 202 print "Leak report (class, total, delta from last job(s), delta since process start):\n" unless $reported; 203 printf "%-40s %-10d %-10d %-10d\n", $class, $post_count, $post_count - $pre_count, $post_count - $start_count; 204 $reported = 1; 205 } 165 206 } 166 207 } -
branches/release-38/lib/MT/Worker/Publish.pm
r2332 r2337 59 59 60 60 my $priority = $job->priority ? ", priority " . $job->priority : ""; 61 $job->debug("MT::Worker::Publish publishing " . $fi->file_path . "$priority");62 61 63 62 # Important: prevents requeuing! … … 82 81 } 83 82 84 ## MT::TheSchwartz->debug("Publishing: " . RebuildQueue::Daemon::_summary($fi));85 MT::TheSchwartz->debug("Publishing file " . $fi->file_path . "..."); 83 $job->debug("Publishing " . $fi->file_path . $priority); 84 86 85 my $res = $mt->publisher->rebuild_from_fileinfo($fi); 87 86 if (defined $res) { … … 96 95 $job->completed(); 97 96 } 98 # This is way too noisy and clutters the activity log99 # for active sites.100 # $mt->log({101 # ($fi->blog_id ? ( blog_id => $fi->blog_id ) : () ),102 # message => $mt->translate('Background Publishing Done'),103 # metadata => log_time() . ' '104 # . $mt->translate('Published: [_1]', $fi->file_path),105 # category => "publish",106 # level => MT::Log::INFO(),107 # });108 97 $rebuilt++; 109 98 } else { -
branches/release-38/tools/run-periodic-tasks
r2272 r2337 1 #!/ usr/bin/perl -w1 #!/opt/local/bin/perl -w 2 2 3 3 # Movable Type (r) Open Source (C) 2001-2008 Six Apart, Ltd. … … 10 10 11 11 use lib 'lib', '../lib'; 12 use MT::Bootstrap; 13 use MT; 12 13 my $daemonize = 0; 14 my $sleep = 5; 15 my $help = 0; 16 my $load = 10; 17 my $verbose = 0; 18 my $scoreboard; 19 my $randomize_jobs = 0; 20 my $trace_objects = 0; 21 22 require Getopt::Long; 23 Getopt::Long::GetOptions( 24 "daemon" => \$daemonize, 25 "sleep=i" => \$sleep, 26 "load=i" => \$load, 27 "scoreboard=s" => \$scoreboard, 28 "randomly" => \$randomize_jobs, 29 "verbose" => \$verbose, 30 "leak" => \$trace_objects, 31 ); 32 33 if ( $trace_objects ) { 34 require Devel::Leak::Object; 35 Devel::Leak::Object->import( qw{ GLOBAL_bless } ); 36 } 37 38 my %cfg; 39 $cfg{verbose} = $verbose; 40 $cfg{scoreboard} = $scoreboard; 41 $cfg{prioritize} = 1; 42 $cfg{randomize} = $randomize_jobs; 43 44 require MT::Bootstrap; 45 require MT; 14 46 15 47 my $mt = MT->new() or die MT->errstr; … … 21 53 $mt->{plugin_template_path} = 'tmpl'; 22 54 $mt->run_callbacks('init_app', $mt); 23 24 require Getopt::Long;25 my $daemonize = 0;26 my $sleep = 5;27 my $help = 0;28 my $load = 10;29 my $verbose = 0;30 my $scoreboard;31 my $randomize_jobs = 0;32 33 Getopt::Long::GetOptions(34 "daemon" => \$daemonize,35 "sleep=i" => \$sleep,36 "load=i" => \$load,37 "scoreboard=s" => \$scoreboard,38 "randomly" => \$randomize_jobs,39 "verbose" => \$verbose,40 );41 42 my %cfg;43 $cfg{verbose} = $verbose;44 $cfg{scoreboard} = $scoreboard;45 $cfg{prioritize} = 1;46 $cfg{randomize} = $randomize_jobs;47 55 48 56 my $client = eval {
