本文整理汇总了Python中zmq.Context类的典型用法代码示例。如果您正苦于以下问题:Python Context类的具体用法?Python Context怎么用?Python Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Context类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: WorkerTest
class WorkerTest(TestCase):
"""Ensures the worker correctly handles messages
"""
def setUp(self):
self.queue = Queue()
self.context = Context()
self.socket = self.context.socket(PUSH)
self.socket.bind(settings.ZTASK_WORKER_URL)
self.worker = WrappedWorker(queue=self.queue)
self.worker.start()
def tearDown(self):
self.worker.terminate()
self.context.destroy()
def test_exec(self):
"""Tests executing a task
"""
uuid = str(uuid4())
self.socket.send_pyobj((uuid,))
self.assertEqual(
self.queue.get(),
uuid
)
self.assertTrue(self.queue.get())
self.queue.close()
开发者ID:abstract-open-solutions,项目名称:django-ztaskq,代码行数:27,代码来源:tests.py
示例2: Listener
class Listener(Thread):
def __init__(self):
super(Listener, self).__init__(name="Listener")
self._shutdown = False
self.context = Context()
self.sub = self.context.socket(SUB)
self.sub.bind('tcp://*:7000')
self.sub.setsockopt(SUBSCRIBE, "")
self.poller = Poller()
self.poller.register(self.sub, POLLIN)
def cleanup(self):
self.sub.close()
self.context.term()
def run(self):
while True:
socks = dict(self.poller.poll(timeout=1))
if socks.get(self.sub) == POLLIN:
msg = self.sub.recv(flags=NOBLOCK)
print msg
if self._shutdown:
break
self.cleanup()
开发者ID:dcolish,项目名称:Presentations,代码行数:26,代码来源:listener.py
示例3: Leatherneck
class Leatherneck(Thread):
def __init__(self):
super(Leatherneck, self).__init__(name="Leatherneck")
self.context = Context()
self.pull = self.context.socket(PULL)
self.pull.connect("tcp://localhost:7000")
self.push = self.context.socket(PUSH)
self.push.connect("tcp://localhost:7001")
self.poller = Poller()
self.poller.register(self.pull, POLLIN)
self._shutdown = False
def cleanup(self):
self.push.close()
self.pull.close()
self.context.term()
def run(self):
while True:
socks = dict(self.poller.poll(timeout=1))
if socks.get(self.pull) == POLLIN:
msg = self.pull.recv()
msg += " WORK COMPLETE, " + str(time())
self.push.send(msg)
if self._shutdown:
break
self.cleanup()
开发者ID:dcolish,项目名称:Presentations,代码行数:28,代码来源:pipeline_worker.py
示例4: wrapped_dispatcher
class wrapped_dispatcher(object):
def __init__(self, enqueued=None, on_load=None):
self.queue = Queue()
kwargs = {
'queue': self.queue
}
if enqueued:
kwargs['enqueued_tasks'] = enqueued
if on_load:
kwargs['on_daemon_load'] = on_load
self.dispatcher = WrappedDispatcher(**kwargs)
self.context = None
self.sockets = {}
def __enter__(self):
self.dispatcher.start()
self.context = Context()
self.sockets['in'] = self.context.socket(PUSH)
self.sockets['out'] = self.context.socket(PULL)
self.sockets['in'].connect(settings.ZTASKD_URL)
self.sockets['out'].connect(settings.ZTASK_WORKER_URL)
return (self.queue, self.sockets['in'], self.sockets['out'])
def __exit__(self, exc_type, exc_value, traceback):
self.dispatcher.terminate()
self.context.destroy()
self.queue.close()
开发者ID:abstract-open-solutions,项目名称:django-ztaskq,代码行数:28,代码来源:tests.py
示例5: initialize_zmq_socket
def initialize_zmq_socket(host, port):
logger.info("Initializing ZMQ consumer socket: Host: %s, Port: %d", host, port)
context = Context()
zmq_socket = context.socket(PULL)
zmq_socket.connect("tcp://{0}:{1}".format(host, port))
logger.info("ZMQ consumer socker initilized.")
return zmq_socket
开发者ID:chaddotson,项目名称:gps_tools,代码行数:7,代码来源:gps_zmq_consumer.py
示例6: DrillingWell
class DrillingWell(Thread):
def __init__(self):
super(DrillingWell, self).__init__(name="DrillingWell")
self.context = Context()
self.push = self.context.socket(PUSH)
self.push.bind("tcp://*:7000")
self._shutdown = False
for th in t_enum():
if th.name == "MainThread":
self.mainthread = th
def cleanup(self):
print "Producer exiting..."
self.push.close()
self.context.term()
def run(self):
count = 0
while True:
if not self.mainthread.is_alive():
self._shutdown = True
break
sleep(0.01)
count += 1
self.push.send("SOMETHING " + str(count))
if self._shutdown:
break
self.cleanup()
开发者ID:dcolish,项目名称:Presentations,代码行数:29,代码来源:pipeline_producer.py
示例7: HomeBase
class HomeBase(Thread):
def __init__(self):
super(HomeBase, self).__init__(name="HomeBase")
self.context = Context()
self.pull = self.context.socket(PULL)
self.pull.bind("tcp://*:7001")
self._shutdown = False
self.poller = Poller()
self.poller.register(self.pull, POLLIN)
for th in t_enum():
if th.name == "MainThread":
self.mainthread = th
def cleanup(self):
print "Home exiting..."
self.pull.close()
self.context.term()
def run(self):
while True:
if not self.mainthread.is_alive():
self._shutdown = True
break
socks = dict(self.poller.poll(timeout=1))
if socks.get(self.pull) == POLLIN:
msg = self.pull.recv(flags=NOBLOCK)
msg += ", WORK RECEIVED "
print msg
if self._shutdown:
break
self.cleanup()
开发者ID:dcolish,项目名称:Presentations,代码行数:32,代码来源:pipeline_producer.py
示例8: Leatherneck
class Leatherneck(Thread):
def __init__(self):
super(Leatherneck, self).__init__(name="Leatherneck")
self.context = Context()
self.pull = self.context.socket(PULL)
self.pull.connect("tcp://localhost:7000")
self.push = self.context.socket(PUSH)
self.push.connect("tcp://localhost:7001")
self.poller = Poller()
self.poller.register(self.pull, POLLIN)
self._shutdown = False
for th in t_enum():
if th.name == "MainThread":
self.mainthread = th
def cleanup(self):
print "Workers exiting..."
self.push.close()
self.pull.close()
self.context.term()
def run(self):
while True:
if not self.mainthread.is_alive():
self._shutdown = True
break
socks = dict(self.poller.poll(timeout=1))
if socks.get(self.pull) == POLLIN:
msg = self.pull.recv(flags=NOBLOCK)
msg += " WORK COMPLETE, " + str(time())
self.push.send(msg, flags=NOBLOCK)
if self._shutdown:
break
self.cleanup()
开发者ID:dcolish,项目名称:Presentations,代码行数:35,代码来源:pipeline_producer.py
示例9: main
def main(name):
map = generate_map(name)
context = Context()
pub_socket = context.socket(PUB)
pub_socket.bind('tcp://0.0.0.0:20000')
map['pub_server'] = pub_socket
rep_socket = context.socket(REP)
rep_socket.bind('tcp://0.0.0.0:20001')
map['rep_server'] = rep_socket
manager = MissionManager()
rep_socket = map['rep_server']
manager.start_mission(LocMission(map, None))
return
while True:
req = MissionMessage()
req.ParseFromString(rep_socket.recv())
if req.type == 6:
req.type = 7
try:
if req.missionType == MissionMessage.CONNECTION:
manager.start_mission(PlaceMission(map, (0.0, 0.0), req))
elif req.missionType == MissionMessage.LOCALIZATION:
manager.start_mission(LocMission(map, req))
else:
raise ValueError('unknown mission type')
req.status = MissionMessage.ACTIVE
except RuntimeError:
req.status = MissionMessage.REJECTED
rep_socket.send(req.SerializeToString())
开发者ID:jalishah,项目名称:airborne,代码行数:29,代码来源:rescue_demo.py
示例10: HomeBase
class HomeBase(Thread):
def __init__(self):
super(HomeBase, self).__init__(name="HomeBase")
self.context = Context()
self.pull = self.context.socket(PULL)
self.pull.bind("tcp://*:7001")
self._shutdown = False
self.poller = Poller()
self.poller.register(self.pull, POLLIN)
def cleanup(self):
self.pull.close()
self.context.term()
def run(self):
while True:
socks = dict(self.poller.poll(timeout=1))
if socks.get(self.pull) == POLLIN:
msg = self.pull.recv()
msg += ", WORK RECEIVED "
print msg
if self._shutdown:
break
self.cleanup()
开发者ID:dcolish,项目名称:Presentations,代码行数:25,代码来源:pipeline_sink.py
示例11: Zmq_broker
class Zmq_broker(BaseModule):
context = None
s_pub = None
pub_endpoint = None
serialize_to = None
serialize = None
def __init__(self, mod_conf, pub_endpoint, serialize_to):
from zmq import Context, PUB
BaseModule.__init__(self, mod_conf)
self.pub_endpoint = pub_endpoint
self.serialize_to = serialize_to
logger.info("[Zmq Broker] Binding to endpoint " + self.pub_endpoint)
# This doesn't work properly in init()
# sometimes it ends up beings called several
# times and the address becomes already in use.
self.context = Context()
self.s_pub = self.context.socket(PUB)
self.s_pub.bind(self.pub_endpoint)
# Load the correct serialization function
# depending on the serialization method
# chosen in the configuration.
if self.serialize_to == "msgpack":
from msgpack import Packer
packer = Packer(default=encode_monitoring_data)
self.serialize = lambda msg: packer.pack(msg)
elif self.serialize_to == "json":
self.serialize = lambda msg: json.dumps(msg, cls=SetEncoder)
else:
raise Exception("[Zmq Broker] No valid serialization method defined (Got " + str(self.serialize_to) + ")!")
# Called by Broker to say 'let's prepare yourself guy'
def init(self):
logger.info("[Zmq Broker] Initialization of the Zmq broker module")
# Publish to the ZeroMQ socket
# using the chosen serialization method
def publish(self, msg, topic=""):
from zmq import SNDMORE
data = self.serialize(msg)
self.s_pub.send(topic, SNDMORE)
self.s_pub.send(data)
# An host check have just arrived, we UPDATE data info with this
def manage_brok(self, b):
logger.debug("[Zmq Broker] Got broker update: " + str(b.data))
# Publish update data to the ZeroMQ endpoint.
msg = b.data
self.publish(msg, b.type)
# Properly close down this thing.
def do_stop(self):
self.s_pub.close()
self.context.term()
开发者ID:shinken-debian-modules,项目名称:shinken-mod-zmq,代码行数:60,代码来源:module.py
示例12: run
def run(port):
""" Run a translations server at a specific port.
It always listens on all available network devices!
"""
context = Context(1)
sync_socket = context.socket(ROUTER)
sync_socket.bind(_SYNC_ENDPOINT)
frontend = context.socket(ROUTER)
frontend.bind("tcp://*:{}".format(port))
# Socket facing services
backend = context.socket(DEALER)
backend.bind(_REQUEST_ENDPOINT)
try:
worker_threads, worker_identities = _start_workers(
context, sync_socket, config.WORKERS, 1000)
_LOG.debug("Running device...")
try:
proxy(frontend, backend)
except KeyboardInterrupt:
print("\rShutting down...")
frontend.close()
frontend = None
_shut_down_workers(sync_socket, worker_threads, worker_identities, 5)
finally:
if frontend is not None:
frontend.close()
backend.close()
sync_socket.close()
_LOG.debug("Done")
开发者ID:GreenelyAB,项目名称:TranslationsServer,代码行数:30,代码来源:server.py
示例13: ZmqFactory
class ZmqFactory(object):
"""
I control individual ZeroMQ connections.
Factory creates and destroys ZeroMQ context.
:var reactor: reference to Twisted reactor used by all the connections
:var ioThreads: number of IO threads ZeroMQ will be using for this context
:vartype ioThreads: int
:var lingerPeriod: number of milliseconds to block when closing socket
(terminating context), when there are some messages pending to be sent
:vartype lingerPeriod: int
:var connections: set of instanciated :class:`ZmqConnection`
:vartype connections: set
:var context: ZeroMQ context
"""
reactor = reactor
ioThreads = 1
lingerPeriod = 100
def __init__(self):
"""
Constructor.
Create ZeroMQ context.
"""
self.connections = set()
self.context = Context(self.ioThreads)
def __repr__(self):
return "ZmqFactory()"
def shutdown(self):
"""
Shutdown factory.
This is shutting down all created connections
and terminating ZeroMQ context. Also cleans up
Twisted reactor.
"""
for connection in self.connections.copy():
connection.shutdown()
self.connections = None
self.context.term()
self.context = None
def registerForShutdown(self):
"""
Register factory to be automatically shut down
on reactor shutdown.
It is recommended that this method is called on any
created factory.
"""
reactor.addSystemEventTrigger('during', 'shutdown', self.shutdown)
开发者ID:brunsgaard,项目名称:txZMQ,代码行数:59,代码来源:factory.py
示例14: run
def run(self):
context = Context()
socket = context.socket(self.socket_type)
socket.bind(self.socket_url)
data = socket.recv_pyobj()
self.queue.put(data)
context.destroy()
self.queue.close()
开发者ID:abstract-open-solutions,项目名称:django-ztaskq,代码行数:8,代码来源:tests.py
示例15: initialize_zmq_socket
def initialize_zmq_socket(interface, port):
logger.info("Initializing ZMQ producer socket: Host: %s, Port: %d", interface, port)
context = Context()
zmq_socket = context.socket(PUSH)
zmq_socket.bind("tcp://{0}:{1}".format(interface, port))
logger.info("ZMQ producer socker initilized.")
return zmq_socket
开发者ID:chaddotson,项目名称:gps_tools,代码行数:9,代码来源:gps_zmq_producer.py
示例16: TestEchoService
class TestEchoService(WindmillTestCase):
def setUp(self):
self.zmq_ctx = Context()
d = 'test_out'
if not os.path.exists(d):
os.makedirs(d)
def tearDown(self):
pass
def test_echo_service_default_behavior(self):
req_out_sock = self.zmq_ctx.socket(REQ)
req_out_sock.bind('tcp://*:8889')
t = thread_wrap_windmill('EchoService')
try:
t.start()
self.assertTrue(t.is_alive,
'The EchoService instance should have started.')
req_out_sock.send("echo, echo, echo")
msg = req_out_sock.recv()
self.assertEqual("echo, echo, echo", msg)
finally:
t.windmill.kill()
t.join(3)
self.assertFalse(t.is_alive(),
'The EchoService instance should have shutdown.')
req_out_sock.close()
def test_echo_service_options(self):
req_out_sock = self.zmq_ctx.socket(REQ)
req_out_sock.bind('tcp://*:8899')
argv = ['-m', 'pong', '--reply_sock_url', 'tcp://localhost:8899']
t = thread_wrap_windmill('EchoService', argv=argv)
try:
t.start()
self.assertTrue(t.is_alive(),
'The EchoService instance should have started.')
req_out_sock.send('ping')
msg = req_out_sock.recv()
self.assertEqual('pong', msg)
finally:
t.windmill.kill()
t.join(3)
self.assertFalse(t.is_alive(),
'The EchoService instance shold have shutdown.')
req_out_sock.close()
开发者ID:neoinsanity,项目名称:windmills,代码行数:57,代码来源:test_echo_service.py
示例17: test_onload
def test_onload(self):
"""Tests onload calls
"""
context = Context()
socket = context.socket(PULL)
socket.bind('tcp://127.0.0.1:5560')
with wrapped_dispatcher(on_load=['django_ztaskq.tests.dummy_onload']) \
as __:
self.assertTrue(socket.recv_pyobj())
开发者ID:abstract-open-solutions,项目名称:django-ztaskq,代码行数:9,代码来源:tests.py
示例18: ZMQ
class ZMQ():
"""ZMQ client / server base class"""
def __init__(self, mode, proto, addr, port):
"""Initializes the ZMQ handler"""
self.state = None
self._mode = mode
self._socket = None
self._proto = proto.lower()
self._addr = addr
self.port = None if port is None else int(port)
def __str__(self):
"""Print configuration details"""
return '{0} {1} {2} {3} {4}'.format(
self._mode, self._proto, self._socket,
self._addr, self.port)
@property
def url(self):
"""Returns the URL"""
if self.port:
return '{proto}://{addr}:{port}'.format(
proto=self._proto,
addr=self._addr,
port=self.port)
else:
return '{proto}://{addr}'.format(
proto=self._proto,
addr=self._addr)
def _initsock(self):
"""Sets the socket"""
if self._socket is None:
self._socket = Context().socket(self._mode)
def close(self):
"""Closes the socket"""
# self._socket.close()
pass
def receive(self):
"""Receives byte stream from the socket"""
data = self._socket.recv()
self.state = ZMQState.SEND
return data
def send(self, data, autoencode=True):
"""Sends a string to the socket"""
if autoencode:
with suppress(AttributeError):
data = data.encode()
self._socket.send(data)
self.state = ZMQState.RECV
开发者ID:HOMEINFO,项目名称:homeinfo-lib,代码行数:55,代码来源:ipc.py
示例19: inicializar_puertos
def inicializar_puertos(self):
from zmq import Context, SUB, SUBSCRIBE
if self.modo == "cinematico":
context = Context()
self.socket_referencias = context.socket(SUB)
self.socket_referencias.connect("tcp://localhost:" + self.puerto_referencias)
self.socket_referencias.setsockopt(SUBSCRIBE, b'')
if self.modo == "dinamico":
raise NotImplementedError
if self.modo == "matematico":
raise NotImplementedError
开发者ID:robblack007,项目名称:clase-dinamica-robot,代码行数:12,代码来源:robots.py
示例20: Master
class Master(object):
def __init__(self, full_socket_address):
self.context = Context()
self.workers = OrderedDict()
self.overflow_launch = False
self.stats = False
self.full_socket_address = full_socket_address
self.socket_address, self.socket_port = full_socket_address.split(':')
@property
@zeroMQError
def init_pubsocket(self):
''' initialise la socket pour permettre de lancer
le benchmark via un publish
'''
self.pubsocket = self.context.socket(PUB)
self.pubsocket.bind('tcp://{}'.format(self.full_socket_address))
@property
@zeroMQError
def init_repsocket(self):
''' init la socket pour permettre de repondre à un
nouveau worker qui vient s'ajouter dynamiquement
par default ce port est fixe (55555)
'''
self.repsocket = self.context.socket(REP)
self.repsocket.bind('tcp://{}:55555'.format(self.socket_address))
@property
def wait_workers(self):
''' permet l'ajout de worker en attendand le
message pour lancer le benchmark
'''
while not self.overflow_launch:
message = loads(self.repsocket.recv_json())
# workers
if '_id' in message:
self.workers[message['_id']] = 'ready'
self.repsocket.send('ok')
sys.stdout.write('worker {} is ready\n'.format(message['_id']))
# overflow signals
elif 'overflow' in message:
self.repsocket.send('ok')
sys.stdout.write('master: launch overflow for {}\n'.format(self.workers.keys()))
self.launch_benchmark
@property
def launch_benchmark(self):
''' declenche le benchmark
'''
self.pubsocket.send('OVERFLOW')
self.workers = OrderedDict()
开发者ID:ultrabug,项目名称:Surcharge,代码行数:53,代码来源:overflow.py
注:本文中的zmq.Context类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论