我正在尝试从 UI 进行 AJAX 调用。这应该只是启动一个异步过程来根据几个条件更新数据库。好用吗:
- Spring AsyncTaskExecutor
- 未来任务
- 扳机
或者还有其他更好的方法吗?
我正在尝试从 UI 进行 AJAX 调用。这应该只是启动一个异步过程来根据几个条件更新数据库。好用吗:
或者还有其他更好的方法吗?
在不知道您的要求的情况下很难说,但是......:
如果您计划扩展我会使用:
TaskExecutor aka Java ExecutorService 的问题在于它本质上是一个可变的内存 JVM 队列(传递给它的可调用/可运行对象可以具有状态并且可以是可变的)。或者更好的说法是队列中的消息自己运行。
如果您的服务器出现故障并且消息在队列中,则使用 ExecutorService 可以对消息说再见。当然,消息不能与其他进程共享。
另一方面,Akka和RabbitMQ而不是 ExecutorService 提供了更好的抽象,并且更容易扩展,因为它本质上是基于“事件”的。消息的行为与数据分离。
在不知道您的数据库的情况下,我只能猜测“触发器”将是一个坏主意。
我认为这是一个重要的问题,因为如果你在所有地方都做错了(将行为和状态结合起来进行异步),那么进行切换可能会非常困难。