def rebuild_index(foreground=False): """ Reindex the entire DB into Whoosh """ # setup celery for rebuilding meta in background app.celery = make_celery(app) register_tasks(app) register_signals(app) from ogreserver.tasks import index_for_search # connect to rethinkdb and run index task for all ebooks conn = r.connect('localhost', 28015, db='ogreserver') for ebook_data in r.table('ebooks').run(conn): if foreground: index_for_search(ebook_data=ebook_data) else: index_for_search.delay(ebook_data=ebook_data)
def _flask_app(request, app_config): if request.config.getoption("--only-client"): yield None return from ogreserver.factory import create_app, make_celery, configure_extensions, register_blueprints, register_signals from ogreserver.extensions.celery import register_tasks app = create_app(app_config) app.testing = True app.celery = make_celery(app) register_tasks(app) configure_extensions(app) register_blueprints(app) register_signals(app) yield app if os.path.exists(app_config["WHOOSH_BASE"]): shutil.rmtree(app_config["WHOOSH_BASE"])
def rebuild_metadata(foreground=False): """ Reload all metadata from external APIs. Use with caution! """ # setup celery for rebuilding meta in background app.celery = make_celery(app) register_tasks(app) register_signals(app) from ogreserver.tasks import query_ebook_metadata # connect to rethinkdb and run metadata task for all ebooks conn = r.connect('localhost', 28015, db='ogreserver') for ebook_data in r.table('ebooks').run(conn): if foreground: query_ebook_metadata(ebook_data) else: query_ebook_metadata.delay(ebook_data)