コード例 #1
0
ファイル: bureaucrat.py プロジェクト: aardsoft/bureaucrat
    def handle_message(self, channel, method, header, body):
        """Handle message."""

        LOG.debug("Method: %r", method)
        LOG.debug("Header: %r", header)
        LOG.debug("Handling message with Body: %r", body)
        try:
            msg = Message.loads(body)
        except (ValueError, KeyError) as err:
            # Report error and accept message
            LOG.error("%s", err)
            channel.basic_ack(method.delivery_tag)
            return

        if msg.target != '':
            wflow = Workflow.load(msg.target_pid)
            wflow.process.handle_message(ChannelWrapper(channel), msg)
            wflow.save()

        if msg.origin == msg.origin_pid and msg.name == 'completed':
            LOG.debug("The process %s has finished", msg.origin)
            Workflow.load(msg.origin).delete()
        elif msg.origin == msg.origin_pid and msg.name == 'fault':
            LOG.error("The process %s has faulted with %s. " + \
                      "The state is preserved.", msg.origin, msg.payload)

        channel.basic_ack(method.delivery_tag)
コード例 #2
0
ファイル: bureaucrat.py プロジェクト: aardsoft/bureaucrat
    def handle_message(self, channel, method, header, body):
        """Handle message."""

        LOG.debug("Method: %r", method)
        LOG.debug("Header: %r", header)
        LOG.debug("Handling message with Body: %r", body)
        try:
            msg = Message.loads(body)
        except (ValueError, KeyError) as err:
            # Report error and accept message
            LOG.error("%s", err)
            channel.basic_ack(method.delivery_tag)
            return

        if msg.target != '':
            wflow = Workflow.load(msg.target_pid)
            wflow.process.handle_message(ChannelWrapper(channel), msg)
            wflow.save()

        if msg.origin == msg.origin_pid and msg.name == 'completed':
            LOG.debug("The process %s has finished", msg.origin)
            Workflow.load(msg.origin).delete()
        elif msg.origin == msg.origin_pid and msg.name == 'fault':
            LOG.error("The process %s has faulted with %s. " + \
                      "The state is preserved.", msg.origin, msg.payload)

        channel.basic_ack(method.delivery_tag)
コード例 #3
0
    def test_load(self):
        """Test Workflow.load()."""

        self.wflow.save()
        wflow = Workflow.load(self.wflow.process.id)
        self.assertTrue(wflow.process.state == 'ready')
コード例 #4
0
ファイル: test_workflow.py プロジェクト: aardsoft/bureaucrat
    def test_load(self):
        """Test Workflow.load()."""

        self.wflow.save()
        wflow = Workflow.load(self.wflow.process.id)
        self.assertTrue(wflow.process.state == 'ready')