Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-3602

AmqpForwardAttributed was opening a connection per call

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Done
    • 3.6.0
    • 3.7.0
    • None

    Description

      One connection and one channel is opened per processed emails. Connections and channels are long lived objects, made to be reused. Flamme graphs showed that this AMQP mailet represents ~1% of CPU occupation with just about 30 mail/sec. Note that 92% of this time is used opening/closing connections/channels. Moving connection and channel initialisation at mailet initialisation enables reuse and leads to dramatic enhancements of the performances of that very mailet. Note that retries are in place in case Rabbit is not up right at start - common with IE docker-compose. The testing strategy relying on mocks is brittle. Given that we have full-fledged integration tests in place, we can get rid of these annoying mock-based tests. - Move AmqpForwardAttribute to a separated maven module - AmqpForwardAttribute should use backend-rabbitmq It cares for us about channel thread safety upon reuse, connection and channel reconfiguration.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              btellier Benoit Tellier
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m