大家好,欢迎来到IT知识分享网。
redisson可以实现分布式的定时任务,本文是使用redis单节点实现的定时任务。
1、redisson配置文件
singleServerConfig: idleConnectionTimeout: 10000 connectTimeout: 10000 timeout: 3000 retryAttempts: 3 retryInterval: 1500 password: subscriptionsPerConnection: 5 clientName: null address: "redis://192.168.31.141:6379" subscriptionConnectionMinimumIdleSize: 1 subscriptionConnectionPoolSize: 50 connectionMinimumIdleSize: 24 connectionPoolSize: 64 database: 11 dnsMonitoringInterval: 5000 threads: 16 nettyThreads: 32 codec: !
{} transportMode: "NIO"
2、新建一个实现Runnable接口的调度任务
public class RunnableTask implements Runnable, Serializable { / * */ private static final long serialVersionUID = 0L; @RInject RedissonClient redisson; @Override public void run() { RAtomicLong atomic = redisson.getAtomicLong("myAtomic"); System.out.println("=======================>" + atomic.getAndIncrement()); } }
3、启动类中实现RScheduledExecutorService
public class App { public static void main(String[] args) throws InterruptedException, ExecutionException { Config config = null; try { config = Config.fromYAML(App.class.getClassLoader().getResourceAsStream("config.yml")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } RedissonClient redisson = Redisson.create(config); RedissonNodeConfig nodeConfig = new RedissonNodeConfig(config); nodeConfig.setExecutorServiceWorkers(Collections.singletonMap("myExceutorService", 5)); RedissonNode node = RedissonNode.create(nodeConfig); node.start(); RScheduledExecutorService executorService = redisson.getExecutorService("myExceutorService"); if (!executorService.isShutdown()) { RScheduledFuture
schedule = executorService.schedule(new RunnableTask(), CronSchedule.of("0/5 * * * * ?")); schedule.get(); } executorService.shutdown(); node.shutdown(); } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/45434.html