#!/usr/bin/perl # # bin/schedule-copier-jobs # # A simple job that schedules copier tasks for the sphinx copier. This should # be run whenever you want to clean up the database of new/old data. Probably # no more often than once every few weeks. # # Authors: # Mark Smith # # Copyright (c) 2009 by Dreamwidth Studios, LLC. # # This program is free software; you may redistribute it and/or modify it under # the same terms as Perl itself. For a copy of the license, please reference # 'perldoc perlartistic' or 'perldoc perlgpl'. # use strict; use v5.10; BEGIN { require "$ENV{LJHOME}/cgi-bin/ljlib.pl"; } use DW::Task::SphinxCopier; die "Need to have Sphinx search enabled.\n" unless @LJ::SPHINX_SEARCHD; my $dbr = LJ::get_db_reader() or die; my $sth = $dbr->prepare( q{SELECT userid FROM user WHERE journaltype IN ('P','C')} ); $sth->execute; while ( my ( $userid ) = $sth->fetchrow_array ) { warn "Scheduling $userid ...\n"; DW::TaskQueue->dispatch( DW::Task::SphinxCopier->new( { userid => $userid, source => 'schedule', } ) ); select undef, undef, undef, 0.02; }