aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjason2018-07-17 14:06:18 -0600
committerjason2018-07-17 14:26:41 -0600
commitf47740320e3c263c33c0e28477bf88ebc7909694 (patch)
treee051b7df51d7f19417e0b6c2c75d9d10aefb5ff3
parent5877caf15b55fb5358ec911faadf0d27553e4f7c (diff)
downloadeventmq-f47740320e3c263c33c0e28477bf88ebc7909694.tar.gz
eventmq-f47740320e3c263c33c0e28477bf88ebc7909694.zip
Add an option to define max sockets per context
-rw-r--r--docs/settings_file.rst6
-rw-r--r--eventmq/__init__.py2
-rw-r--r--eventmq/conf.py3
-rw-r--r--eventmq/receiver.py7
-rw-r--r--eventmq/sender.py6
-rw-r--r--setup.py2
6 files changed, 22 insertions, 4 deletions
diff --git a/docs/settings_file.rst b/docs/settings_file.rst
index c758a16..d09f124 100644
--- a/docs/settings_file.rst
+++ b/docs/settings_file.rst
@@ -13,6 +13,12 @@ Default: False
13 13
14Enable most verbose level of debug statements 14Enable most verbose level of debug statements
15 15
16max_sockets
17===========
18Default: 1024
19
20Define the max sockets for a process/context
21
16****** 22******
17Router 23Router
18****** 24******
diff --git a/eventmq/__init__.py b/eventmq/__init__.py
index 2e180ed..c3ffd05 100644
--- a/eventmq/__init__.py
+++ b/eventmq/__init__.py
@@ -1,5 +1,5 @@
1__author__ = 'EventMQ Contributors' 1__author__ = 'EventMQ Contributors'
2__version__ = '0.3.6' 2__version__ = '0.3.7'
3 3
4PROTOCOL_VERSION = 'eMQP/1.0' 4PROTOCOL_VERSION = 'eMQP/1.0'
5 5
diff --git a/eventmq/conf.py b/eventmq/conf.py
index 715bbb2..87aa675 100644
--- a/eventmq/conf.py
+++ b/eventmq/conf.py
@@ -26,6 +26,9 @@ SUPER_DEBUG = False
26#: Default: True 26#: Default: True
27HIDE_HEARTBEAT_LOGS = True 27HIDE_HEARTBEAT_LOGS = True
28 28
29#: The maximum number of sockets to open per-process/context
30MAX_SOCKETS = 1024
31
29# When a queue name isn't specified use this queue name for the default. It 32# When a queue name isn't specified use this queue name for the default. It
30# would be a good idea to have a handful of workers listening on this queue 33# would be a good idea to have a handful of workers listening on this queue
31# unless you're positive that everything specifies a queue with workers. 34# unless you're positive that everything specifies a queue with workers.
diff --git a/eventmq/receiver.py b/eventmq/receiver.py
index 4450e2e..dc0ead8 100644
--- a/eventmq/receiver.py
+++ b/eventmq/receiver.py
@@ -21,7 +21,7 @@ import logging
21 21
22import zmq 22import zmq
23 23
24from . import constants 24from . import conf, constants
25from .utils.classes import ZMQReceiveMixin, ZMQSendMixin 25from .utils.classes import ZMQReceiveMixin, ZMQSendMixin
26from .utils.devices import generate_device_name 26from .utils.devices import generate_device_name
27 27
@@ -53,7 +53,12 @@ class Receiver(ZMQReceiveMixin, ZMQSendMixin):
53 Raises: 53 Raises:
54 :class:`TypeError`: when `callable` is not callable 54 :class:`TypeError`: when `callable` is not callable
55 """ 55 """
56 from .utils import settings
57 settings.import_settings()
58
56 self.zcontext = kwargs.get('context', zmq.Context.instance()) 59 self.zcontext = kwargs.get('context', zmq.Context.instance())
60 self.zcontext.set(zmq.MAX_SOCKETS, conf.MAX_SOCKETS)
61
57 self.name = kwargs.get('name', generate_device_name()) 62 self.name = kwargs.get('name', generate_device_name())
58 63
59 self.zsocket = kwargs.get('socket', self.zcontext.socket(zmq.ROUTER)) 64 self.zsocket = kwargs.get('socket', self.zcontext.socket(zmq.ROUTER))
diff --git a/eventmq/sender.py b/eventmq/sender.py
index 12dec05..4a2ad7e 100644
--- a/eventmq/sender.py
+++ b/eventmq/sender.py
@@ -23,7 +23,7 @@ import uuid
23 23
24import zmq 24import zmq
25 25
26from . import constants, exceptions 26from . import conf, constants, exceptions
27from .utils.classes import ZMQReceiveMixin, ZMQSendMixin 27from .utils.classes import ZMQReceiveMixin, ZMQSendMixin
28 28
29logger = logging.getLogger(__name__) 29logger = logging.getLogger(__name__)
@@ -55,7 +55,11 @@ class Sender(ZMQSendMixin, ZMQReceiveMixin):
55 socket 55 socket
56 56
57 """ 57 """
58 from .utils import settings
59 settings.import_settings()
60
58 self.zcontext = kwargs.pop('context', zmq.Context.instance()) 61 self.zcontext = kwargs.pop('context', zmq.Context.instance())
62 self.zcontext.set(zmq.MAX_SOCKETS, conf.MAX_SOCKETS)
59 63
60 # Set zsocket to none so we can check if it exists and close it before 64 # Set zsocket to none so we can check if it exists and close it before
61 # rebuilding it later. 65 # rebuilding it later.
diff --git a/setup.py b/setup.py
index 9bacfbf..e053544 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ from setuptools import find_packages, setup
7 7
8setup( 8setup(
9 name='eventmq', 9 name='eventmq',
10 version='0.3.6', 10 version='0.3.7',
11 description='EventMQ job execution and messaging system based on ZeroMQ', 11 description='EventMQ job execution and messaging system based on ZeroMQ',
12 packages=find_packages(), 12 packages=find_packages(),
13 install_requires=['pyzmq==15.4.0', 13 install_requires=['pyzmq==15.4.0',