Skip to content
Snippets Groups Projects
Commit 4fcbb376 authored by ale's avatar ale
Browse files

let the scanner run forever

parent cba2912a
No related branches found
No related tags found
No related merge requests found
import os
import optparse
import logging
import time
from djrandom import daemonize
from djrandom import utils
from djrandom.model.mp3 import MP3
......@@ -22,12 +23,15 @@ class Scanner(object):
setattr(mp3, key, value)
mp3.index(self.idx)
def scan_db(self):
def scan_db(self, run_once):
"""Scan the database for new files."""
while True:
mp3 = MP3.query.filter_by(ready=False).limit(1).first()
if not mp3:
if run_once:
break
time.sleep(30)
continue
log.info('processing %s' % mp3.sha1)
try:
self.process(mp3)
......@@ -39,14 +43,15 @@ class Scanner(object):
Session.commit()
def run_scanner(xapian_db_dir, db_url):
def run_scanner(xapian_db_dir, db_url, run_once):
init_db(db_url)
scanner = Scanner(xapian_db_dir)
scanner.scan_db()
scanner.scan_db(run_once)
def main():
parser = optparse.OptionParser()
parser.add_option('--once', action='store_true')
parser.add_option('--xapian_db_dir')
parser.add_option('--db_url')
daemonize.add_standard_options(parser)
......@@ -60,8 +65,11 @@ def main():
if args:
parser.error('Too many arguments')
if opts.once:
opts.foreground = True
daemonize.daemonize(opts, run_scanner,
(opts.xapian_db_dir, opts.db_url))
(opts.xapian_db_dir, opts.db_url, opts.once))
if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment