从其他rails控制器操作访问线程

时间:2012-09-25 07:41:45

标签: ruby-on-rails ruby multithreading

我正在开发一个应用程序,但目前我仍然坚持使用rails进行多线程处理。

我遇到以下情况:当某些操作发生时(可能是在用户点击按钮或计划任务启动后),我正在启动一个单独的线程来解析某些网站,直到我必须接收SMS代码以继续解析。这时我做了Thread.stop。

SMS代码作为POST请求发送给我的一些控制器。所以我想把它传递给我停止的线程并继续它的工作。

但我怎样才能访问该线程?

保持该主题链接的最佳位置在哪里?

那么如何处理多线程呢?可能存在大量线程和大量SMS请求的情况,我需要以某种方式关联它们。

1 个答案:

答案 0 :(得分:0)

出于所有真实目的,你不能,但你可以让其他线程'报告'它的状态。

您可以使用redis-objects创建一个锁定对象,使用redis作为其标志,创建某种类型的计数器,或只创建true,false值存储。然后,您可以查询redis以查看其他线程的相应状态,并在需要时退出。

https://github.com/nateware/redis-objects

关于这一点很酷的部分是它不仅可以在线程之间工作,而且可以在应用程序之间工作。