本文整理汇总了Python中gofer.common.Thread类的典型用法代码示例。如果您正苦于以下问题:Python Thread类的具体用法?Python Thread怎么用?Python Thread使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Thread类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, worker_id, queue):
"""
:param worker_id: The worker id in the pool.
:type worker_id: int
"""
Thread.__init__(self, name='worker-%d' % worker_id)
self.queue = queue
self.setDaemon(True)
示例2: test_aborted
def test_aborted(self, current):
thread = GThread()
current.return_value = thread
event = getattr(thread, thread.ABORT)
self.assertEqual(GThread.aborted(), event.isSet())
# abort
event.set()
self.assertEqual(GThread.aborted(), event.isSet())
示例3: __init__
def __init__(self, plugin):
"""
:param plugin: A plugin.
:type plugin: gofer.agent.plugin.Plugin
"""
Thread.__init__(self, name='scheduler:%s' % plugin.name)
self.plugin = plugin
self.pending = Pending(plugin.name)
self.setDaemon(True)
示例4: __init__
def __init__(self, worker_id, backlog=100):
"""
:param worker_id: The worker id in the pool.
:type worker_id: int
:param backlog: Limits the number of calls queued.
:type backlog: int
"""
name = 'worker-%d' % worker_id
Thread.__init__(self, name=name)
self.queue = Queue(backlog)
self.setDaemon(True)
示例5: __init__
def __init__(self, node, url):
"""
:param node: An AMQP queue.
:type node: gofer.messaging.adapter.model.Node
:param url: The broker URL.
:type url: str
"""
Thread.__init__(self, name=node.name)
self.url = url
self.node = node
self.authenticator = None
self._reader = None
self.setDaemon(True)
示例6: __init__
def __init__(self, node, url, wait=3):
"""
:param node: An AMQP queue.
:type node: gofer.messaging.adapter.model.Node
:param url: The broker URL.
:type url: str
:param wait: Number of seconds to wait for a message.
:type wait: int
"""
Thread.__init__(self, name=node.name)
self.url = url
self.node = node
self.wait = wait
self.authenticator = None
self.reader = None
self.setDaemon(True)
示例7: run
def run(self):
"""
Run actions.
"""
while not Thread.aborted():
for plugin in Plugin.all():
for action in plugin.actions:
plugin.pool.run(action)
sleep(10)
示例8: run
def run(self):
"""
Thread main.
"""
delay = self._precision
while not Thread.aborted():
sleep(delay)
for tracker in self.paths():
self._sniff(tracker)
示例9: no_route
def no_route(self):
"""
The link cannot be established.
Likely that the queue does not exist.
Abort and reload the plugin.
Returns:
Thread: The thread performing the reload.
"""
def _reload():
try:
self.plugin.reload()
except Exception:
log.exception('Reload plugin: %s, failed', self.plugin.name)
self.abort()
thread = Thread(target=_reload)
thread.start()
return thread
示例10: _fn
def _fn(thing, *args, **kwargs):
repair = lambda: None
while not Thread.aborted():
try:
repair()
return fn(thing, *args, **kwargs)
except _NotFound, e:
raise NotFound(*e.args)
except LinkError:
sleep(DELAY)
repair = thing.repair
示例11: open
def open(self):
"""
Open the reader.
"""
while not Thread.aborted():
try:
self.reader.open()
break
except Exception:
log.exception(self.getName())
sleep(30)
示例12: accept
def accept(self, socket):
"""
Accept requests.
:param socket: An open socket.
:type socket: socket.socket
"""
while not Thread.aborted():
client, address = socket.accept()
try:
self.accepted(client)
finally:
client.close()
示例13: run
def run(self):
"""
Main consumer loop.
"""
self.reader = Reader(self.node, self.url)
self.reader.authenticator = self.authenticator
self.open()
try:
while not Thread.aborted():
self.read()
finally:
self.close()
示例14: run
def run(self):
"""
Read the pending queue and dispatch requests
to the plugin thread pool.
"""
while not Thread.aborted():
request = self.pending.get()
try:
task = Task(self.plugin, request, self.pending.commit)
self.plugin.pool.run(task)
except Exception:
self.pending.commit(request.sn)
log.exception(request.sn)
示例15: purge
def purge(self, url=None):
"""
Purge (drain) all queued messages.
:param url: The broker URL.
:type url: str
"""
url = url or self.url
with Reader(self, url=url) as reader:
while not Thread.aborted():
message = reader.get()
if message:
message.ack()
else:
break