当前位置: 首页 > 知识库问答 >
问题:

可以或应该是调度器。可以重复使用吗?

奚无尘
2023-03-14

寻找Reactor调度程序的指导。

我想在后台运行某些IO任务,即向技术团队发送电子邮件。为了使其异步,我使用Mono。fromRunnable订阅了调度程序。

我可以选择使用 Schedulers.elastic() 或 Schedulers.newElastic()。我更喜欢后者,因为它允许我给它一个唯一的名称,这将有助于日志分析。

做一个静态变量可以吗?

Scheduler emailSched = Schedulers.newElastic("email");

在Mono上订阅它,而不是每次都要创建一个新的调度程序实例?

我只发现Schedulers.newElastic和Schedulers.elastic方法之间有什么区别?这对我的问题没有多大帮助。

共有1个答案

彭胡媚
2023-03-14

我应该每次都创建一个新的调度程序实例吗?

如果你不想做,也没有技术上的原因。在大多数情况下,这可能无关紧要。

主要区别在于:

  • 如果需要,您可以给它一个不同的名称(微不足道)
  • 任何单独的弹性调度程序都将缓存并重用它在后台创建的执行程序,默认超时时间为 60 秒。但是,该缓存不会在同名的不同计划程序实例之间共享。
  • 您可以释放任何单个弹性调度程序,而不会影响其他同名调度程序。

在你描述的案例中,这些都不是真正起作用的因素。

与上述内容分开,请注意Schedulers.boundedElastic()现在是首选选项,尤其是对于包装阻塞IO(这似乎是您正在做的事情。)

 类似资料:
  • AccessibilityService在系统的内存管理方面与普通服务有何不同? 我想问的是:系统可以为了节省内存而关闭AccessibilityService吗?如果可以,当您进入AccessibilityService时,您会看到它打开还是关闭?用户是否必须再次手动打开? 使用startForeground是否有助于使AccessibilityService保持活动状态? 在一个类似的问题中,

  • 我想知道是否有类似于对象实例的函数创建的东西,也许有类似的东西? 这段代码是写的,例如,它也不工作

  • 问题内容: 我的日常工作是使用AngularJS进行客户开发。我们正在评估是否要使用TypeScript。我对Typescript进行了一些研究,几乎我需要的每个JavaScript包都必须具有定义类型文件。我发现这不是很方便,特别是如果我想尝试新的东西并且他们没有它的定义时。真令人沮丧。(即使当前的jQuery定义也给我一些问题,如果我想使用Typescript1.5 beta)。我开始研究ES

  • 我知道我也可以通过创建一个新文档,然后通过更新,但是这个方法需要2个写操作,而且速度也慢得多。

  • 我需要将每个请求的不同系统属性设置为REST API。可以使用

  • 每当我必须从另一个类调用一个方法时,我首先创建一个对象,然后通过该对象调用它。但是当我编写一些代码时,我错误地编写了并且它起作用了。 我通常会写, 以下是实际代码: 1类 在2班 我注意到< code>methodname()是静态的。那是原因吗?