草庐IT

任务栏

全部标签

java - 为什么 spring task scheduler 等待上一个任务完成?

我有以下任务调度程序设置:任务只打印一行并hibernate10秒。使用此设置,我的期望是任务将每5秒运行一次,而不管之前的任务是否已完成执行(即停止hibernate)。但事实并非如此,该任务每15秒运行一次(sleep时间,然后在下一次cron被命中时)。我如何配置它,使任务每5秒运行一次,而不管上一次执行是否完成? 最佳答案 在运行方法中放置@Async注释并查看@Asyncpublicvoidrun{}或者你可以试试这个然后是你的类(class)packagefoo.bar;publicclassTask{publicvoi

java - Spring/Java 调度任务

我正在生成一个线程,它将不断从数据库中提取记录block并将它们放入队列中。该线程将在服务器加载时启动。我希望这个线程一直处于Activity状态。如果数据库中没有记录,我希望它等待一段时间后再检查。我正在考虑使用springtaskscheduler来安排它,但不确定这是否正确,因为我只希望我的任务启动一次。在Spring中实现它的好方法是什么?此外,我需要进行边界检查,以确保如果我的线程出现故障(由于任何错误或异常情况),它应该在一段时间后重新实例化。我可以通过使用线程通信方法在Java中完成所有这些,但只是尝试在Spring或Java中是否有适用于此类场景的东西。任何建议或指示都

java - 在 RxJava 中超时取消任务

我正在试验RxJava和Java8的CompletableFuture类并且不太了解如何处理超时情况。importstaticnet.javacrumbs.futureconverter.java8rx.FutureConverter.toObservable;//...ObservabledoSomethingSlowly(){CompletableFuturetask=CompletableFuture.supplyAsync(()->{//thiscallmaybeveryslow-ifittakestoolong,//wewanttotimeoutandcancelit.ret

java - 将 Activiti 任务从旧流程迁移到新流程

我有一个用于某些业务流程的Activiti项目。问题是关于迁移的。现有流程有一些未完成的任务。我想通过添加新步骤来修改现有流程。现在,当我创建一个新任务时,这个新任务将根据更新后的流程进行处理。未完成的任务将按旧流程处理。让我们来看下面的例子:https://spring.io/blog/2015/03/08/getting-started-with-activiti-and-spring-boot在此示例中,请考虑以下行:taskVariables.put("telephoneInterviewOutcome",true);假设我有一些业务逻辑代码,我在其中检查此变量的值,例如:if

java - 在应用程序引擎任务队列(JAVA)中传递多个参数

有没有办法在google-app-engine的队列中传递多个参数?我使用下面的代码Queuequeue=QueueFactory.getQueue("sms-queue");queue.add(TaskOptions.Builder.url("/SQ").param("id",pId));在我的servlet中,这个id作为查询字符串被检索。longpID=Long.parseLong(req.getParameter("id"));我需要传递6个参数。 最佳答案 你试过这样做吗:queue.add(TaskOptions.Bui

java - Lambda for JavaFX 任务

对于这段代码,编译器给我这个错误“TargetTypeoflambdaexpressionmustbeaninterface”:Task>task=()->sDAO.listFiltered();listFiltered()的返回类型是Iterable.如何使用Task与lambda的接口(interface)? 最佳答案 Task是一个抽象类,不是接口(interface),所以不能直接用lambda表达式创建。您通常只使用内部类来子类化Task:Task>task=newTask>(){@OverridepublicIterab

java - 如何删除 ThreadPoolExecutor 中的旧排队任务并插入新任务?

我使用ThreadPoolExecutor从互联网加载大量图像。当找到新图像时,我需要先渲染它,在这种情况下我想放弃仍在ThreadPoolExecutor中排队的旧任务并添加这些新项目进行下载。我发现ThreadPoolExecutor中没有“clearqueue”方法,“purge”方法听起来不太好。我该怎么办?我只是想调用这个执行器的“关闭”并重新创建一个新的执行器来执行此操作,不确定是否合适。 最佳答案 你试过吗?ThreadPoolExecutorpool=.....;pool.remove(task);task是您要删除

java - 使用 JavaFX 任务正确执行多线程和线程池

我有一个选项供用户从FileChooser提交多个文件以供某些代码处理。结果将是读取文件的IO,然后是对存储数据的实际繁重计算。允许用户选择多个文件,并且由于文件处理不依赖于任何其他选择的文件,这让我的生活更容易处理线程。此外,用户需要有一个按钮列表,每个按钮对应一个要取消的任务,以及一个“全部取消”按钮。因此,我必须考虑选择性或集体终止一个或所有任务的能力。最后一个要求是,我不会让用户打开大量文件来阻塞系统。因此,我设计了一个线程数有限的线程池(假设我将任意数量的线程限制在4个)。我不确定如何正确地设置这一切。我有我需要做的事情的逻辑,但使用正确的类是我遇到的问题。我检查过thisr

java - 如何实现 ExecutorService 来轮流执行任务?

我正在使用java.util.concurrent.ExecutorService与fixedthreadpool执行任务列表。我的任务列表通常在80-150左右,并且我已将随时运行的线程数限制为10,如下所示:ExecutorServicethreadPoolService=Executors.newFixedThreadPool(10);for(Runnabletask:myTasks){threadPoolService.submit(task);}我的用例要求即使已完成的任务也应该重新提交给ExecutorService但只有当所有已经提交的任务时才应该再次执行/获取服务/完成

java - 无条件地执行 Ant 中的任务?

我正在尝试定义一个任务,该任务在目标完成执行时发出(使用回显)一条消息,无论该目标是否成功。具体来说,目标执行一个任务来运行一些单元测试,我想发出一条消息,指示结果可用的位置:...Testscomplete.Resultsavailablein${results}不幸的是,如果测试失败,则任务失败并且执行中止。因此,只有在测试通过时才会输出消息——这与我想要的相反。我知道我可以把任务放在任务之前,但这会让用户更容易错过这条消息。我尝试做的事情可行吗?更新:事实证明我很笨。我的任务中有haltOnFailure="true",这解释了我所看到的行为。现在的问题是,即使测试失败,将其设置