我想要一些关于是否使用fork {}来"跟踪"来自rails应用程序的进程是一个好主意的想法......
从我收集的叉子{my_method; Process#setsid}确实做了它应该做的事情.
1)使用不同的PID创建另一个进程
2)不会中断调用过程(例如,它继续等待fork完成)
3)执行孩子直到完成
..这很酷,但这是个好主意吗?叉子到底在做什么?它是否在内存中创建了我的整个rails mongrel/passenger实例的重复实例?如果是这样那将是非常糟糕的.或者,它是否以某种方式在不消耗大量内存的情况下进行.
我的最终目标是取消我的后台守护程序/队列系统,支持分叉这些进程(主要是发送电子邮件) - 但如果这不能节省内存,那么它肯定是向错误方向迈出的一步
我有一个应用程序,每分钟检查一次数据库,以查找当时应该发送的任何电子邮件.我正在考虑将这个作为一个rake任务,每分钟由一个cron作业运行.会有更好的解决方案吗?
从我所读到的,这不是理想的,因为rake必须每分钟加载整个rails环境,这变得昂贵.
思考?
谢谢.
我有一个控制器,可以生成HTML,XML和CSV报告.用于这些报告的查询需要一分钟才能返回结果.
在后台运行这些任务然后将结果返回给用户的最佳方法是什么?我已经研究过Backgroundrb.对我的需求有什么更基础的吗?