首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用缓存组件在Apache Camel中将变量保存为全局变量

使用缓存组件在Apache Camel中将变量保存为全局变量
EN

Stack Overflow用户
提问于 2021-01-07 16:04:59
回答 1查看 534关注 0票数 1

其目标是使可重用的变量从主体中提取出来,以便在通过路由进行其他转换时也使用它。更具体地说,目的是从接口获得一个令牌,并使用它进行进一步的访问(如图像中的)。

所需经费如下:

  1. 将变量保存到可设置的时间。
  2. 管理变量,以便在需要时获得它。
EN

回答 1

Stack Overflow用户

发布于 2021-01-07 16:41:44

为了保存它,可以使用一种叫做咖啡因的缓存成分。

以下是实现这一目标的一些有用的关键步骤:

代码语言:javascript
运行
复制
//get of the token from the cache
.setHeader(CaffeineConstants.ACTION, constant(CaffeineConstants.ACTION_GET))
.setHeader(CaffeineConstants.KEY, constant("<KEY>")))
.toF("caffeine-cache://%s", cacheName?evictionType=TIME_BASED&expireAfterWriteTime=60) //options settings


.choice()
      //if is not valid
      .when(header(CaffeineConstants.ACTION_HAS_RESULT).isEqualTo(Boolean.FALSE))
                .to("direct-some-external-service") //token obtaining
                
      // save resulting token into cache
                .setHeader(CaffeineConstants.ACTION, constant(CaffeineConstants.ACTION_PUT))
                .setHeader(CaffeineConstants.KEY, constant(constant(<KEY>")))
                .toF("caffeine-cache://%s", cacheName?evictionType=TIME_BASED&expireAfterWriteTime=60)
                .otherwise()
.end()

//some other steps

这是将令牌保存为全局变量并使其可用60秒的过程。

这里直接链接了这个组件的文档:

还有一个有用的例子:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65615853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档