【发布时间】:2014-07-12 01:31:27
【问题描述】:
我想不断检查数据库中的表以运行命令。 有些命令可能需要 4 分钟才能完成,大约 10 秒。
因此我想在线程中运行它们。所以每条记录都会创建新的线程,线程创建后,记录会被删除。
由于数据库查找+线程创建将在无限循环中运行,我如何从线程中获取“响应”(线程将发出 shell 命令并获取我想阅读的响应代码)?
我考虑过创建两个线程,每个线程都有无限循环: - 首先用于数据库查找 + 创建新线程 - 第二个......以某种方式读取线程结果并根据每个响应采取行动
或者我应该使用 fork,或者 os 生成一个新进程?
【问题讨论】:
-
您能否让每个命令线程获取响应代码并将其存储回数据库,作为同一记录的一部分?
标签: ruby multithreading process thread-safety spawn