|
@@ -26,6 +26,8 @@ from kombu.entity import Exchange, Queue
|
|
|
from celery.exceptions import CPendingDeprecationWarning, CDeprecationWarning
|
|
|
from celery.five import WhateverIO, items, reraise, string_t
|
|
|
|
|
|
+from .functional import memoize
|
|
|
+
|
|
|
__all__ = ['worker_direct', 'warn_deprecated', 'deprecated', 'lpmerge',
|
|
|
'is_iterable', 'isatty', 'cry', 'maybe_reraise', 'strtobool',
|
|
|
'jsonify', 'gen_task_name', 'nodename', 'nodesplit',
|
|
@@ -33,7 +35,6 @@ __all__ = ['worker_direct', 'warn_deprecated', 'deprecated', 'lpmerge',
|
|
|
|
|
|
PY3 = sys.version_info[0] == 3
|
|
|
|
|
|
-
|
|
|
PENDING_DEPRECATION_FMT = """
|
|
|
{description} is scheduled for deprecation in \
|
|
|
version {deprecation} and removal in version v{removal}. \
|
|
@@ -63,6 +64,8 @@ NODENAME_SEP = '@'
|
|
|
NODENAME_DEFAULT = 'celery'
|
|
|
RE_FORMAT = re.compile(r'%(\w)')
|
|
|
|
|
|
+gethostname = memoize(1, Cache=dict)(socket.gethostname)
|
|
|
+
|
|
|
|
|
|
def worker_direct(hostname):
|
|
|
"""Return :class:`kombu.Queue` that is a direct route to
|
|
@@ -327,7 +330,7 @@ def nodename(name, hostname):
|
|
|
|
|
|
def anon_nodename(hostname=None, prefix='gen'):
|
|
|
return nodename(''.join([prefix, str(os.getpid())]),
|
|
|
- hostname or socket.gethostname())
|
|
|
+ hostname or gethostname())
|
|
|
|
|
|
|
|
|
def nodesplit(nodename):
|
|
@@ -340,7 +343,7 @@ def nodesplit(nodename):
|
|
|
|
|
|
def default_nodename(hostname):
|
|
|
name, host = nodesplit(hostname or '')
|
|
|
- return nodename(name or NODENAME_DEFAULT, host or socket.gethostname())
|
|
|
+ return nodename(name or NODENAME_DEFAULT, host or gethostname())
|
|
|
|
|
|
|
|
|
def node_format(s, nodename, **extra):
|
|
@@ -357,7 +360,7 @@ _fmt_process_index_with_prefix = partial(_fmt_process_index, '-', '')
|
|
|
|
|
|
|
|
|
def host_format(s, host=None, name=None, **extra):
|
|
|
- host = host or socket.gethostname()
|
|
|
+ host = host or gethostname()
|
|
|
hname, _, domain = host.partition('.')
|
|
|
name = name or hname
|
|
|
keys = dict({
|