我有一个基于 Ruby On Rails 应用程序的 Web 前端,可将数据插入 Postgresql 数据库。当数据库获得新数据时,应使用 Numpy/Scipy 脚本对其进行分析。有没有一种简单的方法可以使用 Ruby 对 Python 后台作业进行排队?
我猜的一种方法是使用Resque(或其他一些 Ruby 作业队列系统)来处理 Ruby 后台脚本,该脚本再次使用命令行调用 Python 脚本。还有其他(更好的)选择吗?
在 Python 和 Ruby 之间使用beanstalkd共享数据对你有用吗?
喜欢
#ruby
insert into DB my-data
put my-data onto shared-queue
然后
#python
while True:
take my-data from shared-queue
process my-data
put did-process-data on shared-queue
这将节省 Ruby 调用 Python 或反之亦然,但我不确定您是否需要事务完整性等。