首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有结构化并发和协同机制的“火与忘”

具有结构化并发和协同机制的“火与忘”
EN

Stack Overflow用户
提问于 2018-12-04 18:14:26
回答 1查看 1.6K关注 0票数 4

我有一个看起来像这样的小端点

代码语言:javascript
复制
val numbers = it.bodyAsString.parseJsonList<Numbers>()
processedNumbers = numberService.process(numbers)
GlobalScope.launch {
    sqsService.sendToSqs(processedNumbers)
}
it.response.setStatusCode(204).end()

我之所以使用GlobalScope,是因为生产者只需要在数字被处理后才能确认,所以我试图做一次火灾,并在平行轨道上忘记能够立即响应生产者。

用结构化货币做这件事的“最佳做法”是什么?我是否应该创建自己的作用域(比如fireAndForgetScope而不是GlobalScope)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 22:13:14

正如您已经猜到的,在这种情况下,创建您自己的范围将是一个很好的解决方案。

您可以将其定义为控制器的成员:

代码语言:javascript
复制
private val bgScope = CoroutineScope(newFixedThreadPoolContext(4, "background-tasks"))

那么,用法与您所做的非常相似:

代码语言:javascript
复制
val numbers = it.bodyAsString.parseJsonList<Numbers>()
processedNumbers = numberService.process(numbers)
bgScope.launch {
    sqsService.sendToSqs(processedNumbers)
}
it.response.setStatusCode(204).end()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53619118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档