- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的环境中,我需要安排长时间运行的任务。我有应用程序 A,它只向客户端显示当前正在运行的任务列表并允许安排新任务。还有应用程序 B 执行实际的艰苦工作。
所以应用A需要在应用B中调度一个任务。它们唯一的共同点就是数据库。最简单的做法似乎是添加一个包含任务列表的表,然后让应用程序 B 每隔一段时间查询一次该表并执行新安排的任务。
然而,这似乎不是正确的做法。乍一看,在企业环境中完成这项工作的工具似乎是消息队列。应用程序 A 将带有任务描述的消息发送到队列,应用程序 B 从队列中读取消息并执行任务。在这种情况下,应用程序 A 是否有可能获取所有计划任务(持久队列?)的状态,而无需像上面提到的那样创建一个表,应用程序 B 会将已完成任务的状态写入其中?另请注意,应用程序 A 可能有多个实例,每个实例都需要了解所有实例的所有任务。
“表方法”的缺点是我需要进行数据库轮询。
“消息队列方法”的缺点是我在基础架构中引入了一个新的通信 channel (这是另一件可能失败的事情)。
你怎么看?还有其他想法吗?预先感谢您的任何建议:)
==========更新==========
最终我决定采用以下方法:这个问题有两个方面:一个是A和B之间的通信。另一个是获取有关任务的信息。
JMS 是沟通的正确工具。要获取数据,正确的工具是数据库。因此,我将让应用程序 A 在描述任务的“任务”表中添加一个新行(稍后我可以查询该表以获取所有任务的列表)。然后 A 将通过 JMS 向 B 发送一条消息,只是说“你有工作要做”。 B 将执行工作并更新表中的任务状态。
感谢大家的回复!
最佳答案
您需要考虑您的部署环境现在和将来可能发生的变化。
您正在有效地研究两个问题,这两个问题都可以通过多种方式解决,具体取决于您能够获得多少基础设施并愿意引入多少,但“正确调整”您的设计也很重要问题。
虽然您考虑数据库和消息传递的使用是正确的,但您需要考虑这些项目对您的域是否过大,只有您和了解您的域的其他人才能真正回答这个问题。
我的建议是查看您所在地区已经在使用的内容。如果您已经拥有可以构建的数据库基础设施,那么在数据库中监控任务 Activity 和调度作业是个不错的主意。但是,如果您必须运行自己的数据库、获得新硬件、没有足够的支持资源,那么引入数据库可能不是一个明智的选择,您可以考虑一种更简单但可能更脆弱的方法来让您的进程写入文件以安排作业和报告任务。
同时,不要将 DB 或 JMS 的引入视为本质上容易出错。正确实现它们是稳定且经过验证的技术,将使您的系统可扩展和可管理。
正如@kan 所说,使用公开网络服务接口(interface)也是一个有用的选择。
关于用于在应用程序之间委派任务的 Java 企业架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497989/
我一直在积极跟进 Blazor,现在我想从我的工作场所获取一个企业应用程序,并将其转换为 Blazor,并保持在企业的限制范围内。我有很多问题,但我会重点关注:在托管方面我应该从什么模型开始。 ASP
destoon实现首页显示供应、企业、资讯条数有多种方法,这里介绍的是直接调用php程序代码进行查询。destoon的模板里面是支持php的代码的,因此我们可以直接在模板里面查询出来即可。 实现代
我目前的任务是为软件开发创建一个文档化的、一致的架构指南。我们有很多聪明人在做正确的事情,但只是不一致和可重复。 我们使用 Microsoft 的应用程序架构指南 2.0 作为起点。因此,提出一个应用
我们正在使用 Zeek 以“连接日志”的形式从交换机收集网络流量。然后,连接日志通过 filebeat 存储在 Elasticsearch 索引中。每个连接日志都是一个包含以下字段的元组:(sourc
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
我只是研究Corda enterprise,我在解压这个文件时下载了文件Corda enterprise3.zip,里面有很多文件jar。谁能帮我解释下corda enterprise的运行和使用方法
我的Apple开发者帐户中有一些有关InHouse App(企业)的预配配置文件。 如果删除那些配置文件,会有什么影响? 会影响已发布的应用程序吗? 删除它安全吗? 最佳答案 您可以删除它们: 已安装
我有一个要分发给公司员工的 iOS 应用程序。我知道为此我们需要考虑企业开发者帐户。我的疑问是我将如何分发构建。苹果是否提供企业商店?如果不是假设我通过 diawi.com 或类似的服务分发构建,将如
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
是否需要注册测试设备(UDID)?在标准程序中,每个用户设备 ID 都必须添加到开发程序中,并且构建必须使用包含 ID 列表的正确配置文件进行签名。它在企业程序中的样子如何。 最佳答案 在企业中,您不
我在 Sphinx 中已有两个数据源: source cities { ... sql_query = SELECT id, city_name, state_name, state_
我们的企业应用程序的生产 APNs 证书即将到期。 是否只是为我们的应用程序 ID 创建新的生产 APNs 证书并用我们的推送通知提供商替换即将过期的证书? 我是否需要重新捆绑和重新分发我们的企业应用
我有一个关于企业 Mac 应用程序分发的问题。我已经使用企业分发证书签署了我的 mac 应用程序,该证书有效期为 future 三年。 现在我的问题是,安装在 Mac 操作系统上的应用程序是否会在三年
我有一个只能在纽约使用的应用程序,它已经在试飞中发布。我可以将其切换到企业版吗? 最佳答案 没有“开关”,它们是两个完全不同的进程。您需要创建一个新的 Enterprise account ,创建企业
对于在供大量人员使用的大型程序中使用缓存,我还比较陌生。我知道什么是缓存以及为什么它总体上是有益的,并且我已经开始将 EHCache 集成到我使用 JSP 和 Spring MVC 的应用程序中。在我
我的应用程序 ID(MDM 应用程序)的企业 APNS 本周过期,不幸的是我没有注意到它。所以我提出了一个新请求,开始在 APP ID 中为 APNS 创建证书,然后完成请求。我可以在我的 App I
我的任务是切换框架并选择 EF 作为 ORM,但我一直在努力弄清楚如何做到这一点。我了解 N 层的基础知识,但在我们公司,我们支持 15 个以上的应用程序,我想了解我们是否应该为每个项目提供单独的 .
我正在设计一个 MySQL 数据库和一个相应的 RoR 应用程序,用于保存各种业务,每个业务都有一个地址。 此应用程序的要求是按城市/国家/地区搜索数据库(这将适用于整个欧洲/英国的企业)。搜索结果将
当使用“企业分发”选项为客户分发 iOS 应用程序时,该应用程序会下载并安装,但很快就会从主屏幕上消失。重新启动 iOS 设备后,它会重新出现。 最佳答案 在我的情况下,如果您在要保存 .ipa 文件
为了让您了解一些背景知识,我们有一个任何人都可以通过网络访问的软件应用程序。它是银行业和零售业的一个非常具体的应用程序。目前,此应用程序可在 Web 和“Windows 平板电脑信息亭”上访问,我们有
我是一名优秀的程序员,十分优秀!