【在Java / Spring中调度任务】教程文章相关的互联网学习教程文章

死磕 java线程系列之线程池深入解析——普通任务执行流程

注:java源码分析部分如无特殊说明均基于 java8 版本。注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类。简介前面我们一起学习了Java中线程池的体系结构、构造方法和生命周期,本章我们一起来学习线程池中普通任务到底是怎么执行的。建议学习本章前先去看看彤哥之前写的《死磕 java线程系列之自己动手写一个线程池》那两章,有助于理解本章的内容,且那边的代码比较短小,学起来相对容易一些。问题(1)线程池中的普通任务...

java-使用Yaml文件中的多个cron表达式启动一个@Scheduled任务【代码】

我喜欢使用.ymlfile的不同配置属性来实现一个@Scheduled作业. 在我的yaml文件中,我将cron表达式描述为一个列表:job:schedules:- 10 * * * * *- 20 * * * * *我使用配置读取了这些值,并创建了一个名为Scheduled的@Bean:@Configuration @ConfigurationProperties(prefix="job", locations = "classpath:cronjob.yml") public class CronConfig {private List<String> schedules;@Beanpublic List<String> schedules() {return this...

java-等待使用者完成任务,然后其他人才能开始【代码】

我有一个Java应用程序,它遍历树状文件夹结构并最终删除整个文件夹结构.为此,我在一个生产者(遍历一棵树并将路径放置到需要删除的文件)和许多实际执行删除作业的使用者中使用了阻塞队列. 文件夹必须为空才能删除,因此,请考虑采用以下结构:/folder1/file1 /folder1/file2 /folder1/file3 /folder1/这就是BlockingQueue在任何给定点可能包含的内容.考虑到有4个使用者轮询队列: Consumer1将选择并删除/ folder1 / file1 Consumer2将选...

Java插件的Gradle任务测试的JVM fork选项【代码】

我有两个带有类型测试的Gradle任务(来自Java Gradle插件):task testsA(type: Test) {useTestNG {includeGroups 'typeA'}systemProperty 'hostname' 'localhost' }task testsB(type: Test) {useTestNG {includeGroups 'typeB'}systemProperty 'hostname' 'localhost' }此systemProperty()方法来自Java插件,它在DefaultJavaForkOption对象上调用systemProperty(),该对象是私有的且是最终的. 有没有办法一次设置派生系统属性“主机名...

java-如何在异步任务中利用spring-data-jpa审核(AuditorAware)?【代码】

当前,我的AuditorAware实现使用Spring的SecurityContextHolder来检索当前的Auditor以保存创建/修改用户名:@Service public class AuditorAwareImpl implements AuditorAware<UserDetails> {private final UserDetailsService userDetailsService;@Autowiredpublic AuditorAwareImpl(UserDetailsService userDetailsService){this.userDetailsService = userDetailsService;}@Overridepublic UserDetails getCurrentAuditor() {Aut...

java-如何为两个不同的任务集正确使用CyclicBarrier的循环行为?【代码】

当最后一个线程进入屏障时,CyclicBarrier执行屏障动作. 如果在CyclicBarrier中定义了5个方(线程),则当第5个线程(任务)进入屏障时,屏障将跳闸(即将重置)并执行屏障动作. 在这里,第5个线程是什么类型都没有关系.它可以是任何任务. 因此,我的问题是: >如果有两组任务(每组5个线程),那么如何确保首先执行一组特定的任务,然后执行屏障操作命令.然后其余的任务集将被执行,然后屏障操作命令将再次被执行.> CyclicBarrier是否适合这些情况...

如何在Java 8中使异步任务具有较低的优先级?【代码】

我有一个处理主实体的服务,检索与主实体关联的第一个子实体,然后返回两者.它还引出了一组可完成的Future链,以进行&检索任何其他实体.目前,我只是采用一组预先构建的检索任务,将Future异步包装在它们周围,然后使用CachedThreadPool将其关闭.很好,但是当50个用户访问服务器时,所有异步线程的运行都会大大减慢主要任务(检索主实体和第一个子实体)的速度. 我想知道是否有一种方法可以使异步调用以较低的优先级运行,以确保快速处理主调用...

java-多个时区中的Spring @Scheduled任务【代码】

我有一个在美国各地(在所有时区)都有业务的客户.我需要在每个时区的凌晨2点运行一个任务.此任务需要时区作为输入,以仅提取与该时区相关的记录. @Scheduled注释具有时区值,一次可以工作一个时区. 我不想通过为每个区域设置4个单独的任务来重复代码.解决方法:将区域属性与注释@Scheduled一起使用(版本4.0新增)请参阅下面的示例@Scheduled(cron = "0 10 19 * * FRI", zone = "CET")

java-运行计时器任务由于异常的语法错误而无法正常工作【代码】

新手问题:我一直在尝试运行计时器.但是我遇到一个异常错误.这是下面的代码.class Helper extends TimerTask { public static int i = 0; public void run() { System.out.println("Timer ran " + ++i); } } public class Test { Timer timer = new Timer(); TimerTask task = new Helper(); timer.schedule(task, 2000, 5000); } 我遇到的错误是timer.schedule(task,2000,5000); 该错误称为语法错误“)”删除此令牌 我已经检查...

java-春季3:任务名称空间:如何找出下一次执行的时间?

我有一个具有使用< task:scheduled>在时间表上执行的方法的bean.在上下文配置中. 我有办法在执行该方法期间找到下一次计划运行的时间吗? 同样的方法也可以手动执行,并且用于接收调度程序信息的机制可能不会中断调度程序外部的执行.解决方法:< task:scheduled>配置样式是用于生成调度程序和调度程序的基础Spring工厂bean的便捷快捷方式.为方便起见,它很有用,但比直接使用基础调度程序工厂要灵活得多. 话虽如此,调度程序本身就需要...

死磕 java线程系列之线程池深入解析——未来任务执行流程【图】

(手机横屏看源码更方便)注:java源码分析部分如无特殊说明均基于 java8 版本。 注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类。 简介 前面我们一起学习了线程池中普通任务的执行流程,但其实线程池中还有一种任务,叫作未来任务(future task),使用它您可以获取任务执行的结果,它是怎么实现的呢? 建议学习本章前先去看看彤哥之前写的《死磕 java线程系列之自己动手写一个线程池(续)》,有助于理解本章的内容,且...

java-在macosx上将launch4j作为蚂蚁构建任务运行【代码】

我试图在macosx上将launch4j作为构建任务运行,但是我收到以下异常:/Users/myname/Desktop/build/buildarms2jar.xml:67: net.sf.launch4j.BuilderException: net.sf.launch4j.ExecException: java.io.IOException: Cannot run program "/Users/myname/Desktop/launch4j/launch4j/bin/windres": error=2, No such file or directory文件路径正确.我读到这可能是风向运行问题,但我找不到解决方案.有谁知道如何解决这一问题? 蚂蚁档案...

java-Apache Ivy设置任务和ivysettings.xml文件

根据this页,我需要声明一个< ivy:settings> Ant内部的任务,可帮助Ant定位ivysettings.xml文件的位置.在此设置文件中,可以找到我所有存储库的定义以及其他信息. 令我感到困惑的是:根据该页面(上面提供的链接),对于< ivy:settings>任务: > ID>文件>网址>主机>领域>用户名>密码 网址的描述是:url of the settings file to use这意味着ivysettings.xml文件实际上可以存储在其他计算机上,甚至可以存储在存储库本身中. 但是,最后一个...

java-Executors.newSingleThreadExecutor()是运行我需要超时的任务的适当选择吗?

不幸的是,在中期,我们不得不调用有时永远不会返回的方法,并永远冻结调用它的线程,从而使我们陷入困境.幸运的是,实际调用与系统中的其他交互很少,并且不返回任何值.因此,我们认为,在修复有问题的代码之前,我们需要在单独的线程中运行调用,如果超过超时,我们可以监视和中断该调用. 显然,比我已经解决了这个问题的人更聪明,将他们的礼物留在了并发包中,由于这是我第一次在并发包中使用任何东西,因此我想确认我正在选择最佳方法. 所以我...

调度 - 相关标签