【发布时间】:2012-05-22 21:03:13
【问题描述】:
我们这里有 3 个 resque worker,负责处理和转换一些数据。现在,我需要向向我发送数据的人发送回复。如何发送回复? resque 是否有异步方式向客户端发送响应?
【问题讨论】:
标签: ruby ruby-on-rails-3 redis resque
我们这里有 3 个 resque worker,负责处理和转换一些数据。现在,我需要向向我发送数据的人发送回复。如何发送回复? resque 是否有异步方式向客户端发送响应?
【问题讨论】:
标签: ruby ruby-on-rails-3 redis resque
Resque 不能(也从未设计为)这样做,但是,您可以使用 redis 或您的数据库作为通信机制。我们实际上是在处理长时间运行的任务时这样做的。例如,在将作业排入队列时,只需在 redis 中创建一个新键,并将该键与作业参数一起传递。随着作业的进行,它可能会更新 redis 中的该键。将这项工作加入队列的人只需要观察该 redis 密钥的变化即可。
如果轮询存在问题,也有更高效的“推送”类型解决方案(例如向应用程序中的控制器或套接字发送 HTTP 通知),尽管只有 3 个工作人员听起来并不应该如此。
【讨论】: