怎么设计异步的Rest api?
在我们开发rest api时,有些接口处理时间比较长,可能直接先返回,然后生成一个任务,放在后台执行。
面对这样的需求,请问一般是通过什么方式进行处理,比如生产者消费者模式?
10 回复
@zhengboah 一个 API 插入表数据,一个 API 查询任务执行状态。 Node 循环这个表执行,遇到未执行的任务,修改数据为执行中,执行结束修改数据为执行结束。
前端轮询查询任务执行状态
消息队列,比如kafka。
用户发请求到服务器,服务器在数据库里记录任务t正在处理中,服务器将向消息队列A发送任务t,消费者服务不断从消息队列A中取任务,取到任务t的时候就处理它,处理完后把结果发送到消息队列B,消息队列B把执行结果记录到数据库中,客户端发起查询任务t的执行结果的请求,服务器返回t的执行结果。
@captainblue2013 我知道用node服务,但是只能写个定时任务或循环去去队列里的任务,然后执行,有没有什么方法能够做到队列有任务时,能驻点去调用任务执行服务?