首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails -将数据从后台作业传递到主线程

Rails -将数据从后台作业传递到主线程
EN

Stack Overflow用户
提问于 2014-03-18 15:49:33
回答 2查看 385关注 0票数 1

我正在我的应用程序中使用后台作业系统(Sidekiq)来管理一些不应该阻止UI的繁重任务。

当作业完成后,我想将数据从后台作业传送到主线程,例如作业的状态或作业所做的数据。

此时,我使用Redis作为主线程和后台作业之间的中间件。它存储数据,状态,.背景作业,这样主线程就可以读取后台发生的事情了。

我的问题是:这是管理计划作业和主线程(使用Redis或键值缓存)之间的数据的良好做法吗?还有其他的程序吗?哪个是最好的,为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-18 16:23:51

以下是我在过去使用过的另外两个选项:

  • Unix套接字这是非常微妙的,创建和关闭连接是一个讨厌,但它确实工作。此外,还涉及清理套接字和与文件系统交互。不会推荐。
  • 标准关系数据库管理系统。这很容易实现,对于我的用例来说也很有意义,因为繁重的任务与特定的模型相关联,因此流程的状态可以存储在该表的列中。这也意味着,在一致性方面,您只需要担心一家商店。

我也使用了memcached,它与Redis做了相同的事情,如果您感兴趣的话,下面是是比较它们的特性的讨论。我发现这个效果很好。

如果Redis为你工作,我会坚持下去。据我所知,这是解决这个问题的合理办法。唯一可能导致问题的事情是生成唯一的键(可能不太难),并确保清除未使用的缓存条目。

票数 1
EN

Stack Overflow用户

发布于 2014-03-18 16:10:00

红酒馆/酒吧是你要找的东西。您只需在通道上使用订阅命令订阅主线程,在该命令中,工作人员将使用发布命令宣布作业状态。由于您已经有Redis在您的环境中,您不需要任何其他的开始。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22484372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档