集群中的spring集成+cron+quartz?

2024-05-21

我有一个由 cron 表达式触发的 spring 集成流程,如下所示:

<int-ftp:inbound-channel-adapter id="my-input-endpoint" ...>
    <int:poller trigger="my-trigger"/>
</int-ftp:inbound-channel-adapter>

<bean id="my-trigger"
   class="org.springframework.scheduling.support.CronTrigger">
  <constructor-arg value="0 * * * * *" />
</bean>

效果很好。但现在我必须扩展实现以使其做好集群准备(同一时间点仅在一个集群节点上执行作业)。

我的愿望是在集群模式下使用 Quartz 框架(将作业状态保存在数据库中)来触发此集成流程。 Quartz 提供了一个漂亮的开箱即用的解决方案。唯一的问题是如何将 Quartz 与现有的 inbout-channer-adaptor 集成? “poller”的“trigger”属性只接受org.springframework.scheduling.Trigger的子类。我找不到“轮询器触发器”和 Quartz 框架之间的任何桥梁。

提前谢谢了!


这是一种方法...

将入站适配器上的自动启动属性设置为 false。

创建一个仅立即触发一次的自定义触发器...

public static class FireOnceTrigger implements Trigger {

    boolean done;

    public Date nextExecutionTime(TriggerContext triggerContext) {
        if (done) {
            return null;
        }
        done = true;
        return new Date();
    }

    public void reset() {
        done = false;
    }
}

在您的石英工作中,获取触发器和SourcePollingChannelAdapter.

当石英触发器触发时,进行石英工作

  1. 适配器.stop()
  2. 触发.重置()
  3. 适配器.start()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集群中的spring集成+cron+quartz? 的相关文章

随机推荐

  • 黑莓 JDE ArrayList?

    Blackberry JDE 不包括java util ArrayList 尽管它知道java util 那是怎么回事 BB 有同等级别吗 我真的不想使用数组 因为我正在处理的对象数量未知 为什么 Blackberry JDE 遗漏了这么多
  • 使用 HTTPClient 发布嵌套参数(哈希)

    我需要从一个应用程序到另一个应用程序的多部分 http 帖子 其中包括文件附件和嵌套的参数哈希 我尝试使用HTTPClient这适用于文件附件 但是我无法获取以嵌套格式发送的参数 data params Hash new data para
  • 如何正确配置我的 Eclipse Luna 深色主题?

    Eclipse http eclipse orgLuna 提供深色主题 它应该看起来像这样 在我的系统上 结果是这样的 这是我所做的 打开 Eclipse 在 窗口 首选项 中 将 外观 主题 设置为 深色 关闭日食 重新启动操作系统 打开
  • MySQL 中 INDEX、PRIMARY、UNIQUE、FULLTEXT 之间的区别?

    创建MySQL表时PRIMARY UNIQUE INDEX和FULLTEXT有什么区别 我将如何使用它们 差异 KEY or INDEX指的是普通的非唯一索引 索引的非不同值是允许的 因此索引may索引的所有列中包含具有相同值的行 这些索引
  • 如何优化分割重叠范围?

    我编写的这个 Python 脚本用于将重叠范围拆分为唯一范围 最后一次迭代 https codereview stackexchange com questions 285932 python script to split overlap
  • Java ElasticSearch 配置的节点均不可用

    过去一小时刚刚下载并安装了elasticsearch 1 3 2 打开 IPtables 端口 9200 和 9300 9400 在 etc hosts 中设置我的计算机名称和 ip 头部模块和护理人员安装并运行顺利 本地主机上的curl
  • CSS:显示:块;与显示:表格;

    之间有区别吗display block and display table 在我看来 它就像包含 dom node 的显示类型table row and table cell节点并不重要 MDN 是这么说的display table 让它表
  • 返回两个文件之间不同的行 (Python)

    我有两个文件 每个文件都有数万行 output1 txt 和output2 txt 我想迭代这两个文件并返回两个文件之间不同的行 和内容 它们大部分是相同的 这就是为什么我找不到差异 filecmp cmp 返回 false 7 4 dif
  • 如何在react-router-dom v6中的路由组件中添加道具

    正如标题所述 我曾经有一个带有状态组件的页面 该组件根据 url 的更改获取不同的 props 现在 升级到React Router v6 我真的不明白如何让它再次工作 我确实知道现在解决这个问题的唯一方法是使用诸如 useNavigate
  • 在 OpenShift Tomcat 上部署后无法运行 Spring MVC Web 应用程序?

    我想知道如何配置我的 spring mvc 配置 xml 文件以连接到开档 PostgreSQL 9 2数据库 我已经对路径的tomcat配置文件进行了更改 openshift 配置目录 只是想知道如何从部署在 openshift tomc
  • pytest 与 setup.py 测试

    我使用说明 描述了here https pytest org latest goodpractices html integrating with setuptools python setup py test pytest runner
  • 在资源字典中添加字体系列

    我正在使用msdn教程 http msdn microsoft com en us library ms753303 aspx wa wsignin1 0要在我的 Wpf 应用程序中添加 FontFamily 在 csproj 中我有
  • 如何使用 dplyr 管道将额外参数传递给 purrr::map

    我有以下数据框和功能 param df lt data frame x 1 3 0 1 y 3 1 0 2 param df gt x y gt 1 1 1 2 8 gt 2 2 1 1 8 gt 3 3 1 0 8 my function
  • Angular-Chart.js 它不显示图表

    我正在尝试使用 Angular chart js 它没有为我显示任何内容 这是我的 javascript 和 html 页面 function angular module app chart js controller BarCtrl f
  • 在 AzureDevops 中发布测试结果挂起

    我们正在使用发布测试结果任务PublishTestResults 2在 Azure Devops 的管道中发布 junit 类型结果 它以前运行良好 但现在挂起 10 分钟 我认为这是默认的作业超时 然后失败 即使结果已发布 如果我在作业开
  • 约束包如何工作?

    背后的想法数据 约束 Forall http hackage haskell org packages archive constraints 0 3 2 doc html src Data Constraint Forall html据我
  • SQLite.Net-PCL 连接未找到数据库

    我一直在尝试创建一个 Windows Phone 我想使用 SQLite 来存储我的数据并学习如何在 Windows Phone 应用程序上使用它 为此 我使用 SQLite Net PCL 但我不断收到文件未找到异常 这是我写的代码 St
  • UITabBarController 未选择的图标图像色调

    我有一个 UITabBarController 我正在尝试修改 现在 未选择的选项卡图标图像默认为灰色 我知道您无法以编程方式更改这些未选择的图标图像的色调 苹果表示 色调是由 png 文件本身的实际色调控制的 因此 如果您想要白色或绿色图
  • 无法使用 abortBroadcast() 阻止短信?

    我正在开发一个短信拦截器应用程序 其中我使用广播接收器和 abortBroadcast 方法 正如许多人在这里建议的那样 防止消息到达收件箱并提醒用户 但就我而言 当我使用模拟器发送短信时 短信不会被阻止 并到达收件箱 我也会收到错误 06
  • 集群中的spring集成+cron+quartz?

    我有一个由 cron 表达式触发的 spring 集成流程 如下所示