java - 用于面向平面文件的处理代理的开源框架

标签 java python

有没有人有一个好的框架可以推荐来处理处理的各个阶段 面向文件的事务。我们的场景很简单 - 我们接收文件,验证它,如果出现问题,我们中止并生成报告。如果文件良好,则进入下一阶段。在某些阶段,一些有效数据可以被提取并进一步处理,一些无效数据将被保留并报告错误。

有人可能会说 ESB 可以用来做到这一点,但我确实在寻找比 shell 脚本和 cron 作业更加自动化的东西。

有人有一个好的开源框架可以推荐用于这些文件监视、移动和作业触发任务吗?

最佳答案

规模非常小

incron (基于 inotify 的 cron)并将每个作业作为单个脚本。

非常简单,允许您将文件放入指定目录,作业将自动提交给脚本。

但这确实需要您自己实现日志记录和文件改组。它还要求您实现一个(简单的)框架来识别记录/提交成功或错误时所需的作业。

/var/processing/incoming/job1/ IN_CLOSE_WRITE /usr/local/bin/job1.bin $@/$#

小型/中型

Celery和共享存储*。

设置 celery 的初始投资是值得的,您可以获得错误报告和可靠的处理框架。

小型/中型

Delayed Job和共享存储*。

像 celery ,但特定于 ruby 。有neat gui .

大规模(仅供娱乐)

LuigiHadoop

Luigi 用于处理,Hadoop 用于存储和提供作业数据。

共享存储*:NFS 将是跨节点共享文件的绝对最简单的方式,您将文件提交到存储解决方案,并在提交到关联框架的作业中引用该文件。

全面披露:我为 Spotify 工作。

关于java - 用于面向平面文件的处理代理的开源框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709710/

相关文章:

python - Django:多个外键查找

python - 确定 MIME 电子邮件部分是文件还是消息文本

Python:在巨大的文本中替换单词

python - 导入可选模块

java - 平面 XML 到层次结构 XML

java - 向多个 JLabel 添加鼠标监听器

java - servlet什么时候释放它的线程

java - "java.lang.IllegalArgumentException: Not a managed type ..."当实体类和Spring数据存储库在同一个包中时

java - 我将如何为 Android 创建宝丽来效果?

python - 我什么时候必须使用 TensorFlow FileWriter.flush() 方法?