如何为一系列任务设计执行引擎

2024-04-25

我正在尝试用 Java 编写一个问题,我必须执行一堆任务。

Problem

执行由多个任务组成的作业,并且这些任务之间具有依赖关系。

一个作业将有一个任务列表,每个这样的任务将进一步有一个后续任务列表(每个后续任务将有自己的后续任务 - 您可以在此处看到递归性质)。每个后续任务都可以开始执行,如果 -

  1. 它被配置为在其前置任务的部分执行时执行。在这种情况下,前置任务将通知它已部分完成,并且我的后续任务可以开始

  2. 圆满完成前期任务。

Example

作业有 2 个初始任务 A 和 B。A 有 2 个后续任务 M 和 N。B 有 1 个后续任务 P。P 有 2 个后续任务 Y 和 Z。

M 可以在其前置任务 A 部分完成后开始。 Z 可以在其前置任务 P 部分完成后开始。 N、P和Y只有分别完成其前置任务A、B和P后才能开始。

我必须设计这样一个工作流程/作业的执行。在设计中,我们必须确认前置任务发送的部分完成事件,以便可以启动其后继任务。我该怎么办?有没有适合这个并发问题的设计模式?


看看阿卡 -http://akka.io http://akka.io/

使用 akka 创建参与者(事件驱动、异步处理消息的并发实体)

每个任务都可以表示为一个参与者(您选择何时启动它)

您可以在部分完成或完全完成时触发其他参与者(任务)(实际上您可以随时触发它们)

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

如何为一系列任务设计执行引擎 的相关文章

  • 如何在Spring中模拟ModelMapper?

    我正在尝试为我的服务层编写单元测试 SpringBootTest class ClinicServiceTest Mock private ProcedureRepository procedureRepository InjectMock
  • Twitter Bootstrap 等前端技术的后端技术 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是一个类似菜鸟的问题 但我们开始吧 我读过 Twitter Bootstrap 以及其他演示框架 它为设计者 程序员提供了轻松构建
  • Apache Tomahawk 文件上传不工作

    我在使用 Apache Tomahawk 时遇到问题 Glassfish 3 0 1 不断记录 警告 JSF1064 无法从库 org apache myfaces custom 中找到或提供资源 inputFileUpload xhtml
  • 如何在java hashset中查找并返回对象

    根据 HashSet javadoc HashSet contains 仅返回布尔值 如何在 hashSet 中 查找 对象并修改它 它不是原始数据类型 我看到 HashTable 有一个 get 方法 但我更喜欢使用该集合 您可以删除一个
  • 如何使用递归获取父级的所有子级,然后获取其子级

    问候 我的 JSP Web 应用程序中有父事务的比喻 我将事务 ID 存储在数据库中 要求是显示父级的所有子级 然后显示父级子级的后续子级 实际上 这个父母及其孩子的列表永远不会超过 4 或 5 层 但我需要考虑到它可以比这更多层 我尝试过
  • 使用 Mockito 对 Runnable 进行单元测试

    我有这样的代码 我想为其编写单元测试 public class TestClass private final Executor executor private final Handler handler TestClass Execut
  • 无法跳过某项活动

    我的 Android 应用程序有一个登录屏幕 用户登录到他的仪表板 但我不希望用户每次关闭应用程序并启动它时都登录 除非他们从仪表板注销 因此 我创建了一个类来检查用户是否登录 检查登录 java public class CheckLog
  • Hibernate EnumType 实例化异常

    我正在使用 hibernate 4 和基于 xml 的映射 这是我遇到的异常 Caused by org hibernate MappingException Unable to instantiate custom type org hi
  • 尽管 CRC 错误,仍强制 gzip 解压缩

    我认为有办法做到这一点 但我不确定如何做 基本上 我正在编写一个压缩程序 当我尝试解压缩压缩数据时 该程序导致了 crc 错误 通常 这意味着解压缩器实际上将我的数据识别为正确的格式并将其解压缩 但是当它将结果与 CRC 指示的预期长度进行
  • Android:如何按下软键盘上方的按钮

    我有一个 保存 按钮 我想将其与软键盘一起按下 因此 当用户单击布局中的 EditText 时 按钮必须保持在键盘上方 现在该按钮隐藏在键盘下方 你怎么做到这一点 提前致谢 您需要将键盘的输入模式设置为adjustResize 您可以通过将
  • Spring 4 web - java.lang.IllegalArgumentException:[0]没有匹配的常量

    我在升级 spring 版本 3 2 6 到 4 2 1 时遇到一些问题 尝试获取与登录页面相关的 css 和 js 文件时 出现 500 内部服务器错误 在服务器端我看到异常 java lang IllegalArgumentExcept
  • 改造:无法为类创建 @Body 转换器

    我需要通过改造 2 发送下一个 json Inspection UUID name ModifiedTime 2016 03 09T01 13 CreatedTime 2016 03 09T01 13 ReviewedWith name2
  • 企业 Web 应用程序中的 JavaFX - 经典网页的良好替代方案?

    我们为不同的客户开发了多种 Web 应用程序 从为那些可怜的管理员提供的简单 看起来很无聊的 CRUD 风格的 GUI 到为那些互联网用户提供的奇特的 AJAX 增强型 GUI 所有这些都基于 JSF 1 2 与 JBoss Seam 2
  • 尝试让 GUI 使用 arrayList 在牌组中打印随机卡

    所以我目前正在用java开发一个卡牌战争游戏 我试图让 GUI 屏幕使用 arrayList 从一组卡片图像中打印 2 张随机卡片 必须使用它进行分配 卡片图像文件名为 1 png 2 png 52 png 并存储在 image card
  • 在 Java、Android 上从 Youtube 下载视频的代码

    我创建了从 Youtube 下载视频的代码 但此代码不适用于 Wi fi 连接 但适用于移动连接 我哪里有错误 import java io File import java io FileOutputStream import java
  • 具有最大行数的 Java JXL 异常

    我正在从我的向量创建一个 Excel 工作表 其中有 127923 条记录 当我尝试输入记录时 我收到以下异常 jxl write biff RowsExceededException The maximum number of rows
  • ServletContext 和 Session 对象

    我们从请求对象 HttpServletRequest 获得的 ServletContext 和 Session 对象的行为是否相同 会话是特定于用户的 Servlet 上下文本质上是全局的 在该 Servlet 的上下文内 这意味着访问该
  • 在 Java 中从字符串中提取第一个单词的最佳方法是什么?

    尝试编写一个简短的方法 以便我可以解析字符串并提取第一个单词 我一直在寻找最好的方法来做到这一点 我想我会用str split 但是我想从字符串中获取第一个单词 并将其保存在一个变量中 然后将其余的标记放入另一个变量中 有没有一种简洁的方法
  • ConcurrentLinkedDeque 与 LinkedBlockingDeque

    我需要一个线程安全的 LIFO 结构 并发现我可以使用线程安全的实现Deque为了这 Java 7 引入了ConcurrentLinkedDeque http docs oracle com javase 7 docs api java u
  • 如何通过代码使用 Google 翻译 API

    我正在尝试创建一个可以发送单词的应用程序翻译 google com 获取翻译结果并将其显示给用户 我编写了 URL 但我不知道如何从网页中提取单词 短语 伪示例 en 是英语代码 es 是西班牙语代码 String from en Stri

随机推荐

  • 使用 LINQ 预加载完整的表

    我需要 LINQ 来获取整个表 但这似乎不起作用 每次我通过 pkey 选择值时 都会再次触发选择 所以 实际上这段代码 DataContext dc new DataContext dc Stores ToList Store st dc
  • 初始化 PHP 交互

    我经常发现PHP的交互模式 php a 非常有用 但如果我可以启动它并立即执行一些命令来初始化我的环境 那会更有用 比如运行自动加载器 设置一些use命名空间的快捷方式等 这是一个例子 include autoloader php use
  • Spark 数据集编码器:kryo() 与 bean()

    在 Spark 中处理数据集时 我们需要指定编码器来序列化和反序列化对象 我们可以选择使用Encoders bean Class
  • Python CTRL+C 退出解释器?

    Python 2 73 Why is it on my laptop when I hit CTRL C I can exit the interpreter and on my desktop hitting CTRL C will ma
  • 输出字符串末尾的空白不与字符串一起打印,而是与其后的下一个打印行一起打印

    我尝试打印一行 要求用户输入 获取输入 然后再次打印一些行 问题是 在我获得输入后 第一个打印行末尾的空白不是打印在该行的末尾 而是打印在第二个打印行的开头 我对 C 完全陌生 所以我不能真正尝试太多 但我尝试在没有提示用户输入的部分的情况
  • Spring消息标签javascript转义

    当我们尝试使用 spring 标签显示属性文件中的标签时 我们可以编写
  • 我可以获取标准库中定义的函数的地址吗?

    考虑以下代码 include
  • 使用 Windows.Services.Store Addons 模拟购买

    我编写了一个基于 Windows Services Store 的应用内购买系统 现在我希望确保我的用户得到他们所付出的代价 在旧的 API 中 我可以模拟购买 我怎样才能让每次购买成功 而不需要每次都从我的信用卡 贝宝中注入真钱 我无法返
  • 了解事件的前一个处理程序是否返回 false。 IE < 9 中的默认阻止?

    我设置了一个全局模式 正在加载 请稍候 div 在一个应用程序中 它每次都会显示 a or a div
  • Visual Studio Code 安装位置

    我几天前安装了 Visual Studio Code 但现在在我的计算机上找不到可执行文件 它在哪里 我已经检查了程序和功能 我还检查了我的路径 由于某种原因 它也不在其中 更新 10 11 2018 如果您进行完全重新安装 包括卸载计算机
  • 函数定义上的纯说明符

    在 GCC 上编译时我得到了错误 函数定义上的纯说明符 但当我使用 VS2005 编译相同的代码时则不然 class Dummy error pure specifier on function definition VS2005 comp
  • 如果我是 Python 新手,我应该使用哪个版本的 Python?

    如果我对 Python 完全陌生 并且正在阅读有关将语句打印到控制台 变量类型 集合等的内容 我应该使用哪个版本的 Python 我知道有大量适用于 Python 2 6 x 的第三方库 但我担心我会学到一些不能很好地移植到 Python
  • Vala vapi 文件文档

    我想使用 Vala 破解现有的基于 GLib 的 C 项目 基本上我正在做的是 在构建过程开始时 使用 valac 从 vala 文件生成 c 和 h 文件 然后像编译任何 c 或 h 文件一样编译生成的文件 这可能不是最好的方法 但在大多
  • Total Blank Unity / Microsoft Store Build 未通过 WACK 测试

    我一直在努力为我的游戏取得成功统一 2018 2 1f1 and 视觉工作室 2017 15 8 0 尝试为 Windows 商店成功构建 打包 WACK 失败后所有 每个不同的配置 我尝试了完全空白默认Unity UWP平台应用程序 生成
  • 下边框边距

    有什么方法可以只在边框上添加边距吗 只有边框应该有边距 而不是文本 我正在尝试移动边框而不是文本字段 需要缩小 移动边框而不是文本 CSS margin check border bottom 1px solid d2d7da margin
  • (已解决)插件选项不允许使用多个值 androidx.compose.compiler.plugins.kotlin:reportsDestination

    我正在使用 Android Studio 与 Kotlin 进行 Android 开发 我的项目中有40多个Android模块 其中一些是Java模块 一些主题是android模块 Kotlin Version 1 8 20 Hilt Ve
  • 在 WinForms 表单之间传递数据[重复]

    这个问题在这里已经有答案了 我在项目中创建了一个辅助表单 它可以从主表单获取数据 并且在单击按钮时应将一些数据传递到主表单 这是代码 Add cs private void button1 Click object sender Event
  • 将响应缓冲区转换为 JSON

    在 AWS 中 我使用 https 模块通过 Lambda 发出 get 请求 我能够返回数据 但当我调用时它是缓冲区格式的callback null obj https get options res gt res on data d g
  • 为什么我无法计算正确的 HMAC 签名?

    我正在尝试在 Google Apps 脚本中计算 HMAC 签名 但文档并未 100 清楚地说明我需要如何传递参数 并且我无法获得预期的输出 为了确定我是否获得正确的输出 我将结果与已知良好的 PHP 代码进行比较 该代码是 key a2V
  • 如何为一系列任务设计执行引擎

    我正在尝试用 Java 编写一个问题 我必须执行一堆任务 Problem 执行由多个任务组成的作业 并且这些任务之间具有依赖关系 一个作业将有一个任务列表 每个这样的任务将进一步有一个后续任务列表 每个后续任务将有自己的后续任务 您可以在此