在Rails App中调用命令行工具的好/可扩展方式是什么?

时间:2015-04-22 20:38:18

标签: ruby-on-rails ruby

假设我有一个数据处理二进制文件,它接收输入文件名,从一个指定文件读取数据并输出到另一个文件。

假设这个二进制文件在大约2秒内执行。

在Rails应用程序中使用此数据处理工具的好方法是什么?我有一些选择:   - 让rails app写入文件,调用二进制文件,等待输出,读取输出。   - 做类似的事情,但不是等待二进制文件执行,只需响应请求并稍后异步推送数据。   - 制作某种Web服务只是为了运行数据处理工具。数据通过一些HTTP请求(可能是多部分)从应用服务器传递到另一台服务器。

还有其他选择/想法吗?

1 个答案:

答案 0 :(得分:1)

这对Sidekiq和S3来说非常有用。我会考虑将文件发送到s3,然后使用Sidekiq在后台作业中处理它们以使用%x运行cli工具,如果您希望直接输出到STDOUT或exec如果您想要返回bool以完成并重定向到True上的结果。

如果文件上传到S3并且有关正在处理的作业的一些声明,请在请求中返回200。这是我如何处理它的一种广泛的笔画版本。