我正在我的应用程序中使用后台作业系统(Sidekiq)来管理一些不应该阻止UI的繁重任务。
当作业完成后,我想将数据从后台作业传送到主线程,例如作业的状态或作业所做的数据。
此时,我使用Redis作为主线程和后台作业之间的中间件。它存储数据,状态,.背景作业,这样主线程就可以读取后台发生的事情了。
我的问题是:这是管理计划作业和主线程(使用Redis或键值缓存)之间的数据的良好做法吗?还有其他的程序吗?哪个是最好的,为什么?
发布于 2014-03-18 16:23:51
以下是我在过去使用过的另外两个选项:
我也使用了memcached,它与Redis做了相同的事情,如果您感兴趣的话,下面是是比较它们的特性的讨论。我发现这个效果很好。
如果Redis为你工作,我会坚持下去。据我所知,这是解决这个问题的合理办法。唯一可能导致问题的事情是生成唯一的键(可能不太难),并确保清除未使用的缓存条目。
发布于 2014-03-18 16:10:00
红酒馆/酒吧是你要找的东西。您只需在通道上使用订阅命令订阅主线程,在该命令中,工作人员将使用发布命令宣布作业状态。由于您已经有Redis在您的环境中,您不需要任何其他的开始。
https://stackoverflow.com/questions/22484372
复制相似问题