コード例 #1
0
ファイル: test_multi.py プロジェクト: boddy/celery
 def setup(self):
     self.Popen = self.patching('celery.apps.multi.Popen')
     self.kill = self.patching('os.kill')
     self.gethostname = self.patching('celery.apps.multi.gethostname')
     self.gethostname.return_value = 'example.com'
     self.Pidfile = self.patching('celery.apps.multi.Pidfile')
     self.cluster = Cluster(
         [
             Node('*****@*****.**'),
             Node('*****@*****.**'),
             Node('*****@*****.**')
         ],
         on_stopping_preamble=Mock(name='on_stopping_preamble'),
         on_send_signal=Mock(name='on_send_signal'),
         on_still_waiting_for=Mock(name='on_still_waiting_for'),
         on_still_waiting_progress=Mock(name='on_still_waiting_progress'),
         on_still_waiting_end=Mock(name='on_still_waiting_end'),
         on_node_start=Mock(name='on_node_start'),
         on_node_restart=Mock(name='on_node_restart'),
         on_node_shutdown_ok=Mock(name='on_node_shutdown_ok'),
         on_node_status=Mock(name='on_node_status'),
         on_node_signal=Mock(name='on_node_signal'),
         on_node_signal_dead=Mock(name='on_node_signal_dead'),
         on_node_down=Mock(name='on_node_down'),
         on_child_spawn=Mock(name='on_child_spawn'),
         on_child_signalled=Mock(name='on_child_signalled'),
         on_child_failure=Mock(name='on_child_failure'),
     )
コード例 #2
0
ファイル: test_multi.py プロジェクト: boddy/celery
 def setup(self):
     self.p = Mock(name='p')
     self.p.options = {
         '--executable': 'python',
         '--logfile': '/var/log/celery/foo.log',
     }
     self.p.namespaces = {}
     self.node = Node('*****@*****.**', options={'-A': 'proj'})
     self.expander = self.node.expander = Mock(name='expander')
     self.node.pid = 303
コード例 #3
0
 def setup(self):
     self.p = Mock(name='p')
     self.p.options = {
         '--executable': 'python',
         '--logfile': 'foo.log',
     }
     self.p.namespaces = {}
     self.expander = Mock(name='expander')
     self.node = Node(
         '*****@*****.**', ['-A', 'proj'], self.expander, 'foo', self.p,
     )
     self.node.pid = 303
コード例 #4
0
    def test_getpids(self):
        self.gethostname.return_value = 'e.com'
        self.prepare_pidfile_for_getpids(self.Pidfile)
        callback = Mock()

        with patch('celery.apps.multi.os.mkdir'):
            p = Cluster([
                Node('*****@*****.**'),
                Node('*****@*****.**'),
                Node('*****@*****.**'),
            ])
        nodes = p.getpids(on_down=callback)
        node_0, node_1 = nodes
        assert node_0.name == '*****@*****.**'
        assert sorted(node_0.argv) == sorted([
            '',
            '--executable={0}'.format(node_0.executable),
            '--logfile={}'.format(
                os.path.normpath('/var/log/celery/foo%I.log')),
            '--pidfile={}'.format(os.path.normpath('/var/run/celery/foo.pid')),
            '-m celery worker --detach',
            '-n [email protected]',
        ])
        assert node_0.pid == 10

        assert node_1.name == '*****@*****.**'
        assert sorted(node_1.argv) == sorted([
            '',
            '--executable={0}'.format(node_1.executable),
            '--logfile={}'.format(
                os.path.normpath('/var/log/celery/bar%I.log')),
            '--pidfile={}'.format(os.path.normpath('/var/run/celery/bar.pid')),
            '-m celery worker --detach',
            '-n [email protected]',
        ])
        assert node_1.pid == 11

        # without callback, should work
        nodes = p.getpids('celery worker')
コード例 #5
0
def _start_worker_process(
    app, concurrency=1, pool="solo", loglevel=WORKER_LOGLEVEL, logfile=None, **kwargs
):
    # type (Celery, int, str, Union[int, str], str, **Any) -> Iterable
    """Start worker in separate process.

    Yields:
        celery.app.worker.Worker: worker instance.
    """
    from celery.apps.multi import Cluster, Node

    app.set_current()
    cluster = Cluster([Node("testworker1@%h")])
    cluster.start()
    yield
    cluster.stopwait()
コード例 #6
0
    def __init__(self):
        extra = "-B"

        for worker in CELERY_WORKERS:
            queue = ""
            if (len(worker.get("queue")) > 1):
                queue = ",".join(worker.get("queue"))
            else:
                queue = worker.get("queue")[0]
            node = Node(name=worker.get("name"),
                        append="-A celery" + " -Q " + queue +
                        " --concurrency " + worker.get("concurrency") +
                        " -l info" + " -f " + CELERYD_LOG_FILE,
                        extra_args=extra)
            self.nodelist.append(node)
            extra = ""
        cluster = Cluster(self.nodelist)
        self.cluster = cluster
コード例 #7
0
ファイル: worker.py プロジェクト: 0x55AAh/anthill_gaming
def _start_worker_process(app: Celery,
                          concurrency: int = 1,
                          pool: str = 'solo',
                          loglevel: Union[int, str] = 'info',
                          logfile: str = None,
                          **kwargs: Any) -> Iterable:
    """Start worker in separate process.

    Yields:
        celery.app.worker.Worker: worker instance.
    """
    from celery.apps.multi import Cluster, Node

    app.set_current()
    cluster = Cluster([Node('worker@%h')])
    cluster.start()
    yield
    cluster.stopwait()
コード例 #8
0
 def createNewWorker(self, name, queue):
     node = Node(name=name,
                 append="-A pj.main.celery" + " -Q " + queue + " -l info" +
                 " -f " + CELERYD_LOG_FILE)
     self.nodelist.append(node)
     node.start()