Sidekiq返回延迟方法的值

dam*_*ser 4 backgroundworker ruby-on-rails-3 sidekiq

我使用Sidekiq来运行在控制器中延迟的方法(同时我使用Redis来更新进度条).这个方法调用服务器,检索数据,做一些操作和计算; 然后可能需要一段时间.

例如,我有这个方法:

data_and_status = MyModelName.delay.retrieve_data(params[:tags], "preview", current_user, params[:from], params[:to])
Run Code Online (Sandbox Code Playgroud)

此方法应返回操作的数据,但以这种方式执行data_and_status是一个哈希(我猜这是Sidekiq-job-id).返回的数据非常大,不幸的是,使用Redis进行一些缓存是不可能的.

如何检索return value延迟作业(方法)?

Eer*_*ero 7

你说返回的数据(来自异步作业)非常大,而通过Redis中继它是不可能的.好吧,你的sidekiq作业在不同的进程中运行,甚至可能在不同的服务器上,所以你必须找到一些进程间的方式来传输数据 - 如果不是你的消息队列(Redis),那么数据库.

例如:

在此输入图像描述