Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-13119

Create Cache Policy for routes

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-M1, 3.0.0
    • camel-jcache
    • None
    • Unknown

    Description

      Let's write a Policy for camel routes that can cache the "result" of a route and execute the route next time only if nothing is found in the cache.
       
      Related to cache DSL idea, but without DSL change: https://issues.apache.org/jira/browse/CAMEL-11114
       
      In the first draft the CachePolicy would cache the Message Body by a key calculated via an Expression.
      Interface:

      • cachePolicy.setCacheManager( cacheManager ) - set the CacheManager. If not set, try lookup automatically.
      • cachePolicy.setCacheName ( name ) - Will use this cache from the CacheManager. If not set, we can use the route id by default.
      • cachePolicy.setKeyExpression( expression ) - Camel expression that is evaluated on the Exchange to determine the cache key. If it's found in the cache, the route is not executed and the cached value is set as Body. Otherwise the Message Body is added to the cache after the route with this key.

       
      An earlier related implementation: https://gist.github.com/bszeti/552bf7a1f05a75fc2964a4ce7ce889b5 
      and how it can be used in a route: https://gist.github.com/bszeti/4f855cd80cd69e3953ff990b0ae056a2
       
       

      Attachments

        Issue Links

          Activity

            People

              davsclaus Claus Ibsen
              BalazsSzeti Balazs Szeti
              Votes:
              0 Vote for this issue
              Watchers:
              4 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