Beispiel #1
0
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)
Beispiel #2
0
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"])
Beispiel #3
0
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)