gpt4 book ai didi

java - 使用Spring AsyncTaskExecutor更新DB好不好?

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:56 25 4
gpt4 key购买 nike

我正在尝试从 UI 进行 AJAX 调用。这应该只是启动一个异步进程来根据几个条件更新数据库。好用吗:

  1. Spring AsyncTaskExecutor
  2. future 任务
  3. 触发器

或者还有其他更好的方法吗?

最佳答案

不知道您的要求很难说,但是......:

如果您计划扩展,我会使用:

  • 如果数据很重要(即您不想放弃某个操作)并且希望支持 Python 等其他语言,则可以使用 RabbitMQRedis 等持久事务队列。
  • 或者Akka(如果您不关心删除操作/消息)。
TaskExecutor 又名 Java ExecutorService 的问题在于它本质上是一个可变的内存 JVM 队列(传递给它的可调用/可运行对象可以有状态并且可以是可变的)。或者更好的说法是队列中的消息自行运行。

使用 ExecutorService,如果您的服务器出现故障并且队列中有消息,您可以与该消息说再见。当然,该消息不能与其他进程共享。

另一方面,

AkkaRabbitMQ 代替 ExecutorService 提供了更好的抽象,并且更容易扩展,因为它本质上是基于“事件”的。消息的行为与数据分离。

在不了解您的数据库的情况下,我只能猜测“触发器”不是一个好主意。

我认为这是一个重要的问题,因为如果你到处都做错了(将异步的行为和状态结合起来),那么进行切换可能会非常困难。

关于java - 使用Spring AsyncTaskExecutor更新DB好不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com