Spring 3.0如何做后台计算?

2024-04-07

在春季应用程序中,我想做一些后台计算。任务是我保存一个实体(比如说 GPS 坐标),然后我想查询 Web 服务以获取所有坐标之间的距离并将它们存储在数据库中以供以后使用。存储实体后,有可能无法连接到将用于计算距离的 Web 服务。

我认为这可以通过在系统中引入一个作业(比如 cron 作业)来完成。一旦我们希望在后台发生某些事情,我们就会将其放入作业队列中。队列将尝试执行它收到的第一个作业,作业将连接到 Web 服务,如果由于某种原因失败,它会保留在队列中并告诉队列它失败了。然后,队列可以在指定的重试时间后执行。当作业成功完成时,将从作业队列中取出。

我很清楚需求,但我不确定该使用哪种技术。 JMX、JMS、Spring 任务调度程序、Spring 集成、混合/匹配或全部。

这看起来类似于如何在spring webapp中创建后台进程? https://stackoverflow.com/questions/1939229/how-to-create-background-process-in-spring-webapp但不完全是

Edit让我们进一步添加一点。还可以为每个 CSV 文件批量添加这些 GPS 坐标(通过 CSV 文件),每个条目都将在文件中进行处理(顺序将是先到先得的文件和每个条目)。删除情况可以更简单,因为预计不会删除任何内容(但可以稍后处理)


如果您“仅”需要异步执行,那么建议的 JMS 方法duffymo https://stackoverflow.com/users/37213/duffymo绝对是一个很好的解决方案(消息传递有保证,它是容错的,事务性的,等等)。但是,如果失败,消息将被回滚并立即地交付,除非您配置再次投递延迟 and a 再次投递限制。但是,虽然一些 JMS 提供商确实提供了此类功能(例如 MQ、WebLogic、JBoss),但据我所知,这并不是一个标准功能(例如,GlassFish OpenMQ 不提供此功能)。你需要考虑到这一点。

另一种方法是使用调度程序(特别是如果您还想延迟或安排作业执行) - 我在这里考虑使用 Quartz - 并在失败时重新安排作业(Quartz 完全支持这一点)。 Spring 还提供了 Quartz 的良好集成。

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

Spring 3.0如何做后台计算? 的相关文章

  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 最快的高斯模糊实现

    如何以最快的速度实施高斯模糊 http en wikipedia org wiki Gaussian blur算法 我要用Java来实现它 所以GPU http en wikipedia org wiki Graphics processi
  • 运行 java -jar 时出现 java.lang.ClassNotFoundException

    我正在使用 ant 来构建我的build xml文件 它编译正常 但随后得到运行时java lang NoClassDefFoundError通过 运行生成的 jar 时java jar my jar jar 似乎这个问题出现了很多 但没有
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • Spring boot 中特定包的自定义日志文件

    我有一个带有专门操作的java包 专业化是因为它们很少被使用 并且我不想将它们与普通日志记录混合在一起 我知道添加logging file myapplication log会将日志记录重定向到此文件 但有没有办法指定仅从特定包记录到另一个
  • 记录共享和映射的诊断上下文

    据我所知 其他人做了什么来解决 Commons Logging 项目 针对 NET 和 Java 不支持映射或嵌套诊断上下文这一事实 执行摘要 我们选择直接使用实现者日志框架 在我们的例子中为 log4j 长答案 您是否需要一个抽象日志框架
  • 以有效的方式从 Map 中删除多个键?

    我有一个Map
  • 在java中将字符串日期转换为美国格式

    我有下面的代码 其中日期为字符串类型 我必须将其设置为美国格式 所以下面我已经展示了它 private static final SimpleDateFormat usOutputDate new SimpleDateFormat MM d
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • 正确签名的 JNLP 应用程序无法在 Java 7 中运行

    我有一个 JNLP 应用程序 由于证书过期需要更新 我有一个经过 CA 验证的新证书 我已将新证书导入到我的密钥库中 我已导入完整的证书链 我的构建文件对构建中的 jar 进行签名和时间戳
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 为什么无法从 WEB-INF 文件夹内加载 POSModel 文件?

    我在我的 Web 项目中使用 Spring MVC 我将模型文件放在 WEB INF 目录中 String taggerModelPath WEB INF lib en pos maxent bin String chunkerModelP
  • 使用单独的线程在java中读取和写入文件

    我创建了两个线程并修改了 run 函数 以便一个线程读取一行 另一个线程将同一行写入新文件 这种情况会发生直到整个文件被复制为止 我遇到的问题是 即使我使用变量来控制线程一一执行 但线程的执行仍然不均匀 即一个线程执行多次 然后控制权转移
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 当底层连接是有状态时如何使用 Apache HttpClient?

    我在谷歌上搜索了很多关于如何使用 HttpClient 进行多线程处理的信息 他们中的大多数人建议使用 ThreadSafeClientConnManager 但我的应用程序必须登录某个主机 登录表单页面 以便 HttpClient 获得底
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • 决策树和规则引擎 (Drools)

    In the application that I m working on right now I need to periodically check eligibility of tens of thousands of object
  • java中void的作用是什么?

    返回类型 方法返回值的数据类型 如果方法不返回值 则返回 void http download oracle com javase tutorial java javaOO methods html http download oracle

随机推荐

  • 将文件从层次结构递归复制到单个平面文件夹

    是否可以将特定文件夹及其子文件夹中递归包含的所有文件直接复制到一个平面目录 而不再考虑源层次结构文件夹 当然这是可能的 为什么不 Counter 0 Get ChildItem Path
  • Laravel5 ORM:如何在同一相关对象上为多个 withCount 别名

    我有一个Hotel模型有很多Rooms那可以是occupied 我应该如何查询这个 酒店列表 房间数 已占用房间数 查询 hotels Hotel where foo bar gt withCount rooms gt withCount
  • Windows 10 中 ~/.git-credentials 文件的位置?

    我搜索但找不到路径 git credentials在我的 Windows 10 机器上 git 文档 https git scm com docs git credential store说它以纯文本形式存储用户名和密码 git crede
  • Spring集成中运行时可配置的动态路由

    我想构建一个具有多个出站网关的方案 可以在运行时添加这些网关 假设它以 2 个网关开始 但能够在运行时添加第 3 4 个网关 我想要 http outbound gateways 来实现它们的功能 但想在运行时构建它们的实例 问题在于在 s
  • 使用指针编写 strcat() 时出错

    我正在尝试学习CThe C programming Language by K R 我正在尝试写一个strcat 使用指针的程序 char strcat char s char t char d d s while s s while s
  • Pandas 将列从一个数据框复制到另一个具有不同名称的数据框

    我必须从一个 DataFrame 复制列A到另一个数据框B 中的列名称A and B不匹配 最好的方法是什么 像这样的专栏有好几个 我需要为每一列写类似的内容吗B SO A Sales Order etc 我会用pd concat http
  • 蓝牙广播

    我想使用蓝牙将数据从一台设备广播到附近的众多设备 现在 我知道蓝牙广播的存在 但是可以使用 Android 现有的 API 吗 如果没有 是否有其他可用的第三方 API 有能力实现这一点 关于蓝牙广播的另一个问题 您是否可以开始收听正在进行
  • 基于路径的遮罩具有良好的抗锯齿功能

    我想用圆圈掩盖一个正方形 我使用它而不是圆角半径 因为我想稍后对动画进行处理 我可以将其遮盖 但边缘非常粗糙 Target View let targetView UIView frame CGRect x 0 y 0 width 100
  • SharePoint REST 在单个 REST 查询中获取用户标题

    我有一个包含 人员和组 列的列表 当我使用 REST 查询行时 我得到此列中列出的用户 ID 我发现这篇文章将帮助我将每个 id 转换为标题 http www codeproject com Articles 692289 How to G
  • 将 pandas 中的数字格式化为以千或百万为单位的货币

    我有一个数据框 pd DataFrame Amount 19000000 9873200 823449242 我需要将数字转换为以百万计的货币 即 19 00MM 9 88MM 和 823 45MM 有谁知道一个快速的方法来做到这一点 Th
  • 如何根据子列表的长度对列表列表进行排序[重复]

    这个问题在这里已经有答案了 我有以下清单 a a b c d e f g h i j k l m n o 我想根据子列表的长度对列表进行排序 结果应该是这样的 a o d e m n a b c f g h i j k l Use key参
  • 从 SQL Server 检查后台进程

    我有一个后台进程正在运行 它在运行时可以在任务管理器中看到 我需要从我的数据库检查该进程是否正在运行 我尝试过以下查询 select from sys dm os threads select FROM sys dm os tasks 但它
  • 为什么切换到 jQuery 3 后我的“load”事件/函数没有被执行?

    自从我升级到jQuery 1 x jQuery 2 x to jQuery 3 x 我现有的代码将不再正确执行 一切正常 但load事件侦听器不再被触发或只是有时被触发 function window on load function th
  • 使用 Vue 为锚标记中的 href 赋值

    听起来很愚蠢 但我找不到传递 href 中定义的变量数据的方法 组件文件 vue 我尝试了所有这些 a href url a a href url a a href url a a url a a url a export default
  • Android - 两句话,两种样式,一个TextView

    我正在尝试显示一个包含两个句子的 TextView 我希望它们是一个接一个的 如下所示 AAAAAA BBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBB 其中 A 是句子的第一个单词 部分 B 是第二个句子 A 和 B 的大
  • 禁止 python markdown 在

    中换行文本

    我正在使用Pythonmarkdown https python markdown github io 作为 Jinja2 生成 html 的过滤器 作为其中的一部分 我从渲染输入中填充表条目 通过 markdown 过滤器传递输入总是将文
  • PHP - 替换所有支持的语言的所有非字母数字字符

    嗨 我实际上正在尝试替换字符串中的所有非字母数字字符 如下所示 mb ereg replace a z0 9 s i string 第一个问题是它不会替换像这样的字符 从字符串中 其次 我想为此方法添加对所有用户语言的多位支持 我怎样才能做
  • 如何使用 Qt“在 Finder 中显示”或“在资源管理器中显示”

    是否可以在 Windows 资源管理器 OS X Finder 中打开一个文件夹 然后选择 突出显示该文件夹中的一个文件 并以跨平台方式执行此操作 现在 我做类似的事情 QDesktopServices openUrl QUrl fromL
  • 如何以 jquery ui 风格创建标准组合框(选择)?

    There is http jqueryui com demos autocomplete combobox启用自动完成功能的组合框 如何以相同的样式创建组合框但没有自动完成功能 只有几个固定值 如果我理解正确 您不想允许用户输入 并且应通
  • Spring 3.0如何做后台计算?

    在春季应用程序中 我想做一些后台计算 任务是我保存一个实体 比如说 GPS 坐标 然后我想查询 Web 服务以获取所有坐标之间的距离并将它们存储在数据库中以供以后使用 存储实体后 有可能无法连接到将用于计算距离的 Web 服务 我认为这可以