diff --git a/app/Console/Commands/HashtagCachedCountUpdate.php b/app/Console/Commands/HashtagCachedCountUpdate.php new file mode 100644 index 000000000..49f354e2b --- /dev/null +++ b/app/Console/Commands/HashtagCachedCountUpdate.php @@ -0,0 +1,57 @@ +option('limit'); + $tags = Hashtag::whereNull('cached_count')->limit($limit)->get(); + $count = count($tags); + if(!$count) { + return; + } + + $bar = $this->output->createProgressBar($count); + $bar->start(); + + foreach($tags as $tag) { + $count = DB::table('status_hashtags')->whereHashtagId($tag->id)->count(); + if(!$count) { + $tag->cached_count = 0; + $tag->saveQuietly(); + $bar->advance(); + continue; + } + $tag->cached_count = $count; + $tag->saveQuietly(); + $bar->advance(); + } + $bar->finish(); + $this->line(' '); + return; + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 7de830c35..4148e38ab 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -44,6 +44,7 @@ class Kernel extends ConsoleKernel $schedule->command('app:import-upload-clean-storage')->twiceDailyAt(1, 13, 32); } $schedule->command('app:notification-epoch-update')->weeklyOn(1, '2:21'); + $schedule->command('app:hashtag-cached-count-update')->hourlyAt(25); } /**