我的Grails 1.3.7应用程序需要处理大XML文件,因此我有一个向其上传大文件的 Controller ,然后将服务器上此文件的路径提供给进行处理的后台线程,以便我可以立即从 Controller 操作返回。 现在,我正在使用Grails Executor插件,它工作正常。我有一个上载域对象,该对象随处理进度(当前状态,已处理元素的数量等)而更新。但现在我还有2个要求: 当应用程序崩溃或服务器关闭时,我想拦截该事件并更新我的Upload域,以说该进程已被中断 我希望用户在单击链接时能够中断自己的处理,并可能从…

2020年11月29日 0条评论 74点热度 阅读全文

与使用@Gridify批注相比,使用GridGain的GridExecutorService远程执行作业有什么优势? 您可以将java.lang.concurrent.ExecutorService的实例传递给您的类,并且不依赖于网格框架,但是会丢失任何功能吗? 解决方案如下: 好吧,我自己找到了答案。显然,使用ExecutorService抽象很难实现故障转移,应该使用标准的GridTask机制: http://www.gridgainsystems.com/jiveforums/thread.jspa?thre…

2020年11月23日 0条评论 52点热度 阅读全文

我正在尝试编写一个解决方案,其中单个线程会产生可并行执行的I / O密集型任务。每个任务都有重要的内存数据。因此,我希望能够限制当前待处理的任务数。 如果我这样创建ThreadPoolExecutor: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(ma…

2020年11月22日 0条评论 59点热度 阅读全文

我有一个多线程程序,该程序似乎并未真正利用机器中的所有内核。这是代码,任何输入将不胜感激。 主班 public class MainClass{ public static void main(String [] args){ Work work=new Work(); work.doIt(); } } 第二类创建任务并将其交给ExecutorService,这是伪代码 public class Work{ public void doIt() throws InterrputedException, Except…

2020年11月14日 0条评论 40点热度 阅读全文

我有一些执行程序服务,这些服务可安排本地任务,例如读取文件,连接到db等。这些进程进行大量的日志记录,这是基于大量线程同时运行并将它们自己的内容写入日志这一事实而进行的。 。 现在,可以在某个时间点引发异常,该异常到达捕获所有异常的main方法。然后,我将关闭所有服务并取消每个任务,以希望阻止所有其他消息发送到日志。不幸的是,在我关闭所有内容后,这些消息仍在显示...有什么想法吗? 更新:这是一些代码 public class Scheduler{ private final ExecutorService ser…

2020年10月17日 0条评论 27点热度 阅读全文

以下是我尝试过的一段代码。每个文件都有一个整数,我想将所有整数相加并显示输出 @Override public void run() { BlockingQueue<Integer> d; try { d = readFile(file); //System.out.println("adding the integers ..."+d.take()); i = (int) d.take(); System.out.println("i = "+i); sum = sum + i; //System.o…

2020年9月27日 0条评论 36点热度 阅读全文

我最初通过ThreadPoolExecutor的更复杂的子类看到了此问题,但是我已经对其进行了简化,因此现在只包含一些其他调试功能,并且仍然遇到相同的问题。 import com.jthink.songkong.cmdline.SongKong; import com.jthink.songkong.ui.MainWindow; import com.jthink.songkong.util.SongKongThreadFactory; import java.util.concurrent.*; import j…

2020年9月25日 0条评论 28点热度 阅读全文

我正在从ElasticSearch索引中获取100k文件路径,并且实际文件在本地驱动器中可用。基于文件路径,我必须将这些文件转换为base64。 我使用100k提取scrollApi文件路径并将其添加到Arraylist中。收集所有文件路径后,我想将这些文件转换为base64。 为此,我想为此进程创建一个工作线程(以加快进程)。 请在下面找到我的代码。最初,我从 flex 搜索索引中读取文件路径,并将此文件路径传递给我的工作线程以读取路径(未完全实现以转换为base64)。 public class Documen…

2020年9月10日 0条评论 37点热度 阅读全文

目前,我正在GCP上进行演示,我从存储桶中读取了一个巨大的File,然后进行了一些处理,然后将结果写入另一个存储桶中。 读取文件后,我使用ExecutorService将文件的每一行发送到一个线程,问题是我已经用50、25和10个线程(Executors.newFixedThreadPool(10);)测试了该过程,并且在本地工作得很好(使用但是,当我在GCP Kubernetes上部署该项目时,它会在某个时刻死掉(没有日志,没有错误,pod会死掉并重新启动)。 知道为什么会发生这种情况吗? 配置; 1个集群(1.…

2020年9月9日 0条评论 51点热度 阅读全文

我有一个程序产生线程(〜5-150)来执行一堆任务。最初,我使用了FixedThreadPool,因为this similar question建议它们更适合寿命较长的任务,并且由于我对多线程的了解非常有限,因此我认为线程的平均寿命(几分钟)是“寿命长”。 但是,我最近添加了产生更多线程的功能,这样做使我超出了我设置的线程限制。在这种情况下,最好猜测并增加我可以允许的线程数,或者切换到CachedThreadPool以免浪费线程? 初步尝试将它们都尝试一下,似乎没有什么区别,所以我倾向于使用CachedThread…

2020年9月8日 0条评论 45点热度 阅读全文