Esempio n. 1
0
def main(namespace: str, root_folder: str, once: bool):
    with open_database(settings.LOCAL_DB, models=all_models):
        device_id = Device.default_device_id()
        configure_logging(device_id)
        logging.info("Starting cleint with device id: %s", device_id)
        session = Session.create(namespace, root_folder, device_id)
        session_instance.configure(session)

        def on_server_start(server_port):
            run_discovery_loop(device_id, namespace, server_port, session.peer_registry)

        run_server(on_start=on_server_start)

        worker = SyncWorker(session)
        session.sync_worker = worker
        if once:
            worker.run_once()
        else:
            worker.run()
Esempio n. 2
0
def db():
    with open_database(":memory:", all_models):
        yield
Esempio n. 3
0
        events = []
        last_sequence_number = store_events(namespace, request.get_json())
    else:
        events = load_events(namespace, int(request.args.get("min_sequence_number", 0)))
        last_sequence_number = events[-1]["sequence_number"] if events else 0

    return jsonify({"last_sequence_number": last_sequence_number, "events": events})


@app.route("/namespace/<namespace>/feed")
def feed():
    def get_message():
        message = json.dumps({})
        return f"data: {message}\n\n"

    def event_stream():
        yield get_message()
        condition = Condition()
        while True:
            with condition:
                condition.wait()
                yield get_message()

    return Response(event_stream(), mimetype="text/event-stream")


if __name__ == "__main__":
    with open_database(settings.SERVER_DB, models=all_models):
        app.run(port=5555, debug=True)