据我所知,OpenCPU 中没有任务模型,也就是说,一个开放的 TCP 连接必须等待任意长的时间,直到请求完成。
任务模型实现的一种可能性是,当人们希望运行一个函数时,200 OK
立即返回一个带有状态的专用任务 uri。POST
这样做的好处是,当作业在后台运行在服务器上时,客户端会立即得到结果。
然后,客户端将轮询任务 URI,直到它返回201 created
,这意味着作业已成功完成,或者调用不成功的错误代码。在成功的情况下,正文将包含POST
现在直接创建的相同资源列表。
对此模型或类似方法有何看法?大家是怎么处理这个问题的?我认为在没有打开 TCP 连接的情况下支持长时间运行的作业会很有价值。我还想到了在轮询仍在运行的作业时提供进度信息等可选功能。