在做项目的时候有这个需求:用户提交请求需要排队处理(先来先处理,后来请求处于等待状态),用户可以查看所有请求状态。
序号 |
用户名 |
提交类型 |
提交时间 |
开始处理时间 |
处理结束时间 |
处理状态 |
4 |
张三 |
aaaa |
2011-11-16 17:14:34 |
|
|
waiting |
3 |
李四 |
sss |
2011-11-16 17:14:09 |
2011-11-16 17:14:09 |
|
process |
2 |
王五 |
dddd |
2011-11-16 17:13:47 |
2011-11-16 17:13:47 |
2011-11-16 17:13:57 |
failed |
1 |
赵六 |
ffff |
2011-11-16 17:13:34 |
011-11-16 17:13:34 |
2011-11-16 17:13:44 |
success |
pm设计的方案是:用两个对列解决。一个队列处理所有请求的状态,将状态置为waiting。第二个队列处理请求。这样就可以在列表中展示所有请求状态,又可以处理请求。
我对此不懂,现在权当一个处理方法记录下来。至于此方法是否ok,我就不敢保证。只当一个解决方法积累。
<!--EndFragment-->
Object object = null;
// object在这里设置了下其他状态
// 这个队列存放等待的所有对象
MyQueueTwo bMyQueueTwo = MyQueueTwo.getInstance();
bMyQueueTwo.queueTwo.offer(object);
// 将userData对象放入queue中(队列中)
MyQueue aMyQueue = MyQueue.getInstance();
aMyQueue.queue.offer(object);
// 对象
Object str = null;
Object strTwo = null;
// 第一个队列————设置所有请求状态
while ((strTwo = bMyQueueTwo.queueTwo.poll()) != null) {
// 语句块
}
// 从队列中一个一个取出来(先进先出),处理请求
synchronized (aMyQueue) {
while ((str = aMyQueue.queue.peek()) != null) {
// 处理异常,有异常时需要将队头的对象释放掉,才会处理下一个请求
try {
// 语句块
} catch (Exception e2) {
aMyQueue.queue.poll();
e2.printStackTrace();
continue;
}
// for循环中释放对象
for (int i = 0; i < strPatchFilePathaArray.length; i++) {
try {
} catch (Exception e) {
aMyQueue.queue.poll();
e.printStackTrace();
break;
}
}
}
}
public class MyQueue {
public static Queue<Object> queue = null;
private static MyQueue instance = null;
private MyQueue() {
queue = new LinkedList<Object>();
}
public static synchronized MyQueue getInstance() {
if (instance == null) {
instance = new MyQueue();
}
return instance;
}
}
分享到:
相关推荐
本篇文章将深入探讨易语言中的队列处理以及与RabbitMQ的结合使用。 首先,我们要理解队列的基本概念。队列是一种先进先出(FIFO)的数据结构,就像现实生活中的排队等待一样,第一个进入队列的元素也将是第一个被...
基于springboot+mybatis redis构建的在线抽奖系统,管理后台,采用队列处理,支持高并发 项目经过严格测试,确保可以运行! 基于springboot+mybatis redis构建的在线抽奖系统,管理后台,采用队列处理,支持高并发...
易语言源码易语言简单队列处理源码.rar 易语言源码易语言简单队列处理源码.rar 易语言源码易语言简单队列处理源码.rar 易语言源码易语言简单队列处理源码.rar 易语言源码易语言简单队列处理源码.rar 易语言源码...
在标题和描述中提到的“消息队列处理”和“队列任务”,涉及的核心概念主要包括消息传递、任务调度以及异步处理。 1. **消息传递**:消息队列基于发布/订阅或生产者/消费者模型,允许不同服务之间通过消息进行通信...
本项目"消息队列处理代码"包含了一系列相关文件,用于演示如何在C#环境中使用MSMQ进行消息处理。 1. **MSMQChannel.sln**:这是一个Visual Studio解决方案文件,包含了项目的所有配置和引用。打开此文件,开发者...
以上就是C语言在Linux环境下实现队列处理的一些基本步骤和关键知识点。实际应用中,可能需要根据具体需求进行优化,例如处理并发环境下的同步问题、限制队列大小、错误处理等。通过这种方式,你可以创建一个类似于C#...
消息队列是一种异步处理机制,它允许应用程序将任务放入队列,而无需等待其完成。后台工作者会从队列中取出任务并执行,从而实现了请求的非阻塞处理。这样,前端可以快速响应用户,而不会因为等待耗时操作而阻塞。 ...
易语言简单队列处理源码,简单队列处理,初始化启动,AddrPacketQrList,DelsPacketQrList,ProcessorPacketQ,提交处理事件,设置定时器,销毁定时器,取变量地址_字节集,ASM_写整数,ASM_写短整数,ASM_读短整数,ASM_写字节,...
虽然此队列处理程序没有直接依赖Yii,但提供了与Yii兼容的示例,意味着它可以无缝地集成到使用Yii构建的项目中。这为开发者提供了一种在现有项目中快速实现消息队列功能的方法。 消息队列的核心概念是生产者和消费...
在IT行业中,呼叫队列处理是一项至关重要的技术,特别是在客户服务和通信系统中。"行业分类-设备装置-呼叫队列处理.zip"这个压缩包文件很可能包含了一份关于如何管理和优化呼叫中心队列流程的详细文档——"呼叫队列...
在探讨***通过消息队列处理高并发请求的场景中,以抢购小米手机为例,我们可以学习到以下几个关键知识点: 1. 高并发处理的必要性:在Web应用中,尤其是在抢购活动或者促销中,瞬间会涌入大量用户请求对服务器进行...
6. **负载均衡与容错**:消息队列处理系统需要考虑负载均衡,确保消息在多个消费者间均匀分布,同时提供故障转移和高可用性,以防单点故障。 7. **消息确认与重试机制**:为了保证消息的可靠性,消息队列通常支持...
《基于物联网的云计算队列处理系统》 在当今数字化时代,物联网(IoT)与云计算的结合已经成为推动各行各业发展的关键技术。本资料详细介绍了如何构建一个基于物联网的云计算队列处理系统,该系统能够高效地管理和...
本文将详细解析标题和描述中提到的"C# Socket客户端服务端封装,支持多连接处理,Tasks多线程,队列处理,大数据拆分包处理"的相关知识点。 首先,Socket在C#中是.NET Framework提供的一个类库,它允许开发者构建...
标题 "行业分类-设备装置-一种队列处理方法及装置.zip" 暗示了这个压缩包中的内容可能涉及计算机科学或信息技术领域的设备操作和数据处理。描述 "行业分类-设备装置-一种堆积机的低接触出书台.zip" 提到了堆积机,这...
在51单片机开发中,串口通信是常见的数据传输方式,特别是在嵌入式硬件系统中。...在实际项目中,可能还需要考虑错误检测、多线程同步等问题,但上述内容已经涵盖了基础的串口接收和队列处理机制。
"多接口发动机测控系统数据队列处理方法"是一个专门针对这一领域的技术,它涉及到的数据队列处理是系统核心功能的一部分,用于优化数据管理和实时响应。 数据队列处理是计算机科学中的一个重要概念,特别是在实时...
本项目基于SpringBoot和MyBatis框架,利用Redis作为队列处理高并发请求,确保了系统的稳定性和性能。以下将详细介绍这些技术及其在抽奖系统中的应用。 1. **SpringBoot**:SpringBoot是Spring框架的扩展,简化了...
q4m mysql队列处理 (文本打开即可)
内容是一个javaspring结构的模块,设计了处理高并发解决方案,消息队列处理业务逻辑的代码设计,注意:1 只是一个模块,不是一个可运行项目,2 需要项目结构是java spring,3 需要自己选择并搭建所使用的消息队列。