예제 #1
0
    def on_response(self, response):
        if response.status in (200, 204):
            return self.fire(Event(self.channel),
                             'response_success',
                             target=self.manager)

        secs = self._attempt * 2
        self._attempt += 1
        if secs < 1:
            secs = .2
        elif secs > RETRY_INTERVAL_CAP:
            secs = RETRY_INTERVAL_CAP
        Timer(secs, Retry(), t=self).register(self)
예제 #2
0
def test_values():
    event = Event()
    event.test_meta = 1

    value = Value(event=event)
    value.value = 'foo'
    value.errors = False
    value.node_call_id = 1

    x, id, errors, meta = load_value(dump_value(value))

    assert value.value == x
    assert id == 1
    assert not errors
    assert meta['test_meta'] == event.test_meta
예제 #3
0
 def started(self, *args, **kwargs):
     self.hostname = self.root.config.get('core', 'hostname')
     b = self.root.config.get('core', 'persist_backend')
     b = b.lower()
     h = self.root.config.get('backend:%s' % b, 'host')
     p = self.root.config.get('backend:%s' % b, 'port')
     if b in ('http', 'https'):
         self._backends = backends = {}
         self._backend_state = {}
         while len(self._backends) < self._pool_count:
             bid = uuid4().hex
             backends[bid] = RetryHTTPClient(host=h,
                                             port=p,
                                             scheme=b,
                                             channel=bid).register(self)
             self._backend_state[bid] = IDLE
     else:
         logger.error("Invalid backend given: %s" % b)
         raise SystemExit
     Timer(CHECK_INTERVAL, Event(), 'persist', t=self,
           persist=True).register(self)
예제 #4
0
# To Start the Manager in ProcessMode
#m.start(process=True)

# Create a new instance of the Component Foo
foo = Foo()
#noncompfoo = NonComponentFoo()

# Register foo with the Manager
m += foo  # Equivalent to: foo.register(m)
#m += noncompfoo
#m._add(a_handler, "a")
"""the plain function doesn't have attribute 'priority' (etc. i guess) 
so a no-go i figure"""

# Push an Event to a Channel called "a"
m.push(Event(), "a")

# Send an Event to a Channel called "b"
x = m.send(Event(), "b")
print x  # x contains: "Foo's Event Handler for 'b'"

while 1:
    pass

# Unregister foo
foo.unregister()  # Or: m -= foo

# Stop the Manager
m.stop()
예제 #5
0
파일: test.py 프로젝트: geodelic/arke
mylogger.addHandler(h)
m = Manager()
logging.debug('manager init')
m += Debugger()
logging.debug('debugger init + register')
#l = Logger()
#Config.__dict__['__metaclass__'] = HandlerMetaClass
#Config = HandlerMetaClass('Config', (_Config,), {})
c = Config(sys.argv[1])
print("\n\n")
print(c.name)
pprint(c._handlers)
print("\n\n")
#m += l
m += c
m.fire(Load(), target='config')
#while m: m.flush()
logging.debug('config init + register')
p = plugin_manager(paths=sys.argv[2])
logging.debug('pm init')
m += p
logging.debug('pm register')
#while m: m.flush()
#(Manager() + Logger() + Config(sys.argv[1]) + plugin_manager(paths=sys.argv[2])).run()
#while m: m.flush()

m.fire(Event(collect_plugin), 'load', target='plugin_manager')
#p.load(collect_plugin)
logging.debug('pm load')
m.run()
예제 #6
0
 def _on_response(self, bid):
     rid = self._backend_state[bid]
     self.fire(Event(rid), 'remove', target=self.spool)
     self._backend_state[bid] = IDLE
     self.fire(Event(bid), 'persist', target=self)
예제 #7
0
 def request(self, method, path, body=None, headers=None):
     conn = self._client
     conn.request('PUT', path, body=body, headers=headers)
     self.fire(Event(conn.getresponse()), 'response')