Пример #1
0
    def __init__(self,
                 dest,
                 db_stats=False,
                 namespace=STAMPEDE_NS,
                 props=None,
                 db_type=None,
                 backup=False,
                 **kw):
        self._namespace = namespace
        #pick the right database loader based on prefix
        if namespace == STAMPEDE_NS:
            self._db = WorkflowLoader(dest,
                                      perf=db_stats,
                                      batch=True,
                                      props=props,
                                      db_type=db_type,
                                      backup=backup)
        elif namespace == DASHBOARD_NS:
            self._db = DashboardLoader(dest,
                                       perf=db_stats,
                                       batch=True,
                                       props=props,
                                       db_type=db_type,
                                       backup=backup)
        else:
            raise ValueError("Unknown namespace specified '%s'" % (namespace))

        super(DBEventSink, self).__init__()
Пример #2
0
    def __init__(self, dest, db_stats=False, namespace=STAMPEDE_NS, props=None, db_type=None, backup=False, **kw):
        self._namespace=namespace
        #pick the right database loader based on prefix
        if namespace == STAMPEDE_NS:
            self._db = WorkflowLoader(dest, perf=db_stats, batch=True, props=props, db_type=db_type, backup=backup)
        elif namespace == DASHBOARD_NS:
            self._db = DashboardLoader(dest, perf=db_stats, batch=True, props=props, db_type=db_type, backup=backup)
        else:
            raise ValueError("Unknown namespace specified '%s'" % (namespace))

        super(DBEventSink, self).__init__()
Пример #3
0
class DBEventSink(EventSink):
    """
    Write wflow event logs to database via loader
    """
    def __init__(self, dest, db_stats=False, namespace=STAMPEDE_NS, props=None, db_type=None, backup=False, **kw):
        self._namespace=namespace
        #pick the right database loader based on prefix
        if namespace == STAMPEDE_NS:
            self._db = WorkflowLoader(dest, perf=db_stats, batch=True, props=props, db_type=db_type, backup=backup)
        elif namespace == DASHBOARD_NS:
            self._db = DashboardLoader(dest, perf=db_stats, batch=True, props=props, db_type=db_type, backup=backup)
        else:
            raise ValueError("Unknown namespace specified '%s'" % (namespace))

        super(DBEventSink, self).__init__()

    def send(self, event, kw):
        self._log.trace("send.start event=%s", event)
        d = {'event' : self._namespace + event}
        for k, v in kw.iteritems():
            d[k.replace('__','.')] = v
        self._db.process(d)
        self._log.trace("send.end event=%s", event)

    def close(self):
        self._log.trace("close.start")
        self._db.finish()
        self._log.trace("close.end")

    def flush(self):
        self._db.flush()
Пример #4
0
class DBEventSink(EventSink):
    """
    Write wflow event logs to database via loader
    """
    def __init__(self, dest, db_stats=False, namespace=STAMPEDE_NS, props=None, db_type=None, backup=False, **kw):
        self._namespace=namespace
        #pick the right database loader based on prefix
        if namespace == STAMPEDE_NS:
            self._db = WorkflowLoader(dest, perf=db_stats, batch=True, props=props, db_type=db_type, backup=backup)
        elif namespace == DASHBOARD_NS:
            self._db = DashboardLoader(dest, perf=db_stats, batch=True, props=props, db_type=db_type, backup=backup)
        else:
            raise ValueError("Unknown namespace specified '%s'" % (namespace))

        super(DBEventSink, self).__init__()

    def send(self, event, kw):
        self._log.trace("send.start event=%s", event)
        d = {'event' : self._namespace + event}
        for k, v in kw.items():
            d[k.replace('__','.')] = v
        self._db.process(d)
        self._log.trace("send.end event=%s", event)

    def close(self):
        self._log.trace("close.start")
        self._db.finish()
        self._log.trace("close.end")

    def flush(self):
        self._db.flush()