java 自定义队列 队列达到指定的容量执行方法 或者指定时间内未到达指定容量也执行

蜂信物联FastBee平台https://gitee.com/beecue/fastbee

阿里资料开源项目https://gitee.com/vip204888

百度低代码前端框架https://gitee.com/baidu/amis

OpenHarmony开源项目https://gitcode.com/openharmony

仓颉编程语言开放项目https://gitcode.com/Cangjie

// listener执行次数 计数器

private static AtomicInteger executeCount = new AtomicInteger();

// 事件集合

private static List eventStorageList = Collections.synchronizedList(new ArrayList<>());

public static void add(EventObject eventObject) {

eventStorageList.add(eventObject);

}

/**

  • 举例: 监听存储时间的list 若大于10000执行保存操作 或者到了5分钟还没大于10000也执行保存操作

*/

@PostConstruct

public void initEventStorageListener() {

ScheduledExecutorService scheduled = Executors.newSingleThreadScheduledExecutor();

scheduled.scheduleWithFixedDelay(() -> {

if (eventStorageList.size() > storageListMaxCapacity) {

List temporary = new ArrayList<>(eventStorageList);

eventStorageList.removeAll(temporary);

saveEvent(temporary);

} else {

// 一分钟执行一次 计数器加一

int cr = executeCount.incrementAndGet();

if (cr > notReachedIntervals) {

if (!eventStorageList.isEmpty()) {

List temporary = new ArrayList<>(eventStorageList);

eventStorageList.removeAll(temporary);

saveEvent(temporary);

// 初始计数器

executeCount = new AtomicInteger();

}

}

}

}, 1, 1, TimeUnit.MINUTES);

}

private static Executor executor = Executors.newFixedThreadPool(numberOfConcurrentThreads);

private void saveEvent(List temporary) {

List<List> lists = ListUtils.cut(temporary, (int) Math.ceil((double) temporary.size() / numberOfConcurrentThreads));

for (List list : lists) {

try {

executor.execute(() -> {

// 业务代码

// do something

});

} catch (Exception e) {

log.error(“{}, {}”, Thread.currentThread().getName(), e.getMessage());

eventStorageList.addAll(list);

}

}

}

}

集合切割工具类

public class ListUtils {

/**

总结

至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:

  1. 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
  2. 项目经历:只写明星项目,描述遵循 STAR 法则;
  3. 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;

以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

模板+Java面试题+热门技术系列教程视频

[外链图片转存中…(img-SRNED2vW-1725148264795)]

[外链图片转存中…(img-Uu7UlrIV-1725148264796)]

[外链图片转存中…(img-zlI6Risu-1725148264797)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值