我正在使用HTTParty gem作为Rails应用程序(我称之为 Main )将请求发送到Rails API(我称之为 API )。< / p>
其中一个请求可能很长,它可以持续10秒到6分钟。今天我使用timeout: 600
选项,这有助于解决超时错误。
但我希望在执行作业时, API 每隔10秒发送一次低时间(例如20秒)和保持活动状态。
问题:如何从 API发送保持活动?
我想到的设计是在 API 上分叉两个进程。一个人会执行繁重的任务,另一个人会向客户端发送保持活跃的响应块(即 Main )。这两个进程将与信号量通信。我可以轻松编写线程代码。
我唯一无法弄清楚的是如何发送保持活力。当我从 API 控制器render
时,发送整个响应并关闭连接。 HTTP方面的解决方案是使用“chunked'Transfer-Encoding'”。我需要建议如何将它应用到rails。
提前致谢。