有没有人有一个好的框架可以推荐来处理处理的各个阶段 面向文件的事务。我们的场景很简单 - 我们接收文件,验证它,如果出现问题,我们中止并生成报告。如果文件良好,则进入下一阶段。在某些阶段,一些有效数据可以被提取并进一步处理,一些无效数据将被保留并报告错误。
有人可能会说 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 .
大规模(仅供娱乐)
Luigi 用于处理,Hadoop 用于存储和提供作业数据。
共享存储*:NFS 将是跨节点共享文件的绝对最简单的方式,您将文件提交到存储解决方案,并在提交到关联框架的作业中引用该文件。
全面披露:我为 Spotify 工作。
关于java - 用于面向平面文件的处理代理的开源框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709710/