有没有人推荐一个好的框架来处理面向文件的事务的处理阶段。我们的场景很简单——我们接收文件,验证它,如果有问题我们中止并生成报告。如果文件好,进入下一阶段。在某些阶段,可以提取并进一步处理一些有效数据,而保留一些无效数据并报告错误。
有人可能会争辩说 ESB 可以用来做到这一点,但我真的在寻找一种比拥有 shell 脚本和 cron 作业更自动化的东西。
有没有人为这些文件监视、移动和工作触发任务推荐一个好的开源框架?
非常小规模
incron(基于inotify的cron)和每个作业作为一个脚本。
非常简单,允许您将文件放到指定的目录中,并且作业将自动提交给脚本。
但是,这确实需要您自己实现日志记录和文件改组。它还要求您实现一个(简单的)框架来识别在记录/提交成功或错误时所需的作业。
/var/processing/incoming/job1/ IN_CLOSE_WRITE /usr/local/bin/job1.bin $@/$#
中小规模
芹菜和共享存储*。
设置 celery 的初始投资是值得的,您可以获得错误报告和可靠的处理框架。
中小规模
延迟作业和共享存储*。
像芹菜,但特定于红宝石。有一个整洁的 gui。
大规模(只是为了踢)
Luigi 用于处理,Hadoop 用于存储和提供您的工作数据。
共享存储*:NFS 将是跨节点共享文件的绝对最简单的方式,您将文件提交到存储解决方案,并在提交到相关框架的作业中引用该文件。
全面披露:我为 Spotify 工作。