gpt4 book ai didi

multithreading - 在grails应用程序中使用后台线程在mysql数据库中插入数据

转载 作者:行者123 更新时间:2023-12-02 15:08:33 24 4
gpt4 key购买 nike

嗨,我有grails网络应用程序,用户可以通过从excel或csv文件导入数据来保存数据,而我的应用程序可以分析数据并将其保存在数据库中,但是如果记录太多(例如40,000),则需要花费更多时间。

因此,我想做的是在后台运行此任务,并在任务完成后通过电子邮件通知用户,这样用户不必坐在那里就可以从事其他任务。

您能建议我一种使用后台线程将记录保存在数据库中的方法吗?

最佳答案

您可以使用@Async批注在单独的线程中启动长时间运行的任务,请参见here的文档:

25.5.2 The @Async Annotation

The @Async annotation can be provided on a method so that invocation of that method will occur asynchronously. In other words, the caller will return immediately upon invocation and the actual execution of the method will occur in a task that has been submitted to a Spring TaskExecutor. In the simplest case, the annotation may be applied to a void-returning method.



这是一个如何使用它的代码示例:
@Async
void doSomething() {
// this will be executed asynchronously
}

要为批处理提供类似ETL(提取转换负载)的结构,请查看 Spring 批处理。这是如何使用spring batch- CSV File Upload读取CSV并将其上传到数据库的示例。

关于multithreading - 在grails应用程序中使用后台线程在mysql数据库中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638263/

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