java如何用数据库实现完美的队列
我正在设计购物车,
我的购物车里有X个产品。
每种产品都与一家商店相关联
- 示例产品1由Shop1销售
- 示例产品2由Shop2销售
- 示例产品3由Shop3销售
- 示例产品4由Shop4销售
- 我以XML的形式获取产品1的详细信息(Shop1中的可用性和价格[当产品售出或价格改变时])
- 我应该在我的购物车里更新这些细节李>
这应该如何处理
我将项目分为两部分:
1:项目1
我创建了一个基于表单的应用程序,所有商店都使用它
当产品售出时,商店管理员将输入产品详细信息(可用单元数等)并提交。我将其转换为XML并保存到表1中
示例:
表1
Product_ID | XML
--------------------------------
Prod_1A | xml
Prod_2A | xml
Prod_3A | xml
Prod_1A | xml
2:项目2
在这个项目中,我使用了
ServletContextListener
每当我部署这个项目时,借助ServletContextListener contextInitialized
方法
我正在创建一个Timer
,每10秒运行一次。在那Timer
中,我正在检查表1是否包含任何记录。如果是的话,在Timer类的run方法中,我将从中选择一条记录,并更新购物车中的数据
for (int i = 0; i <= 5 ; i++) {
fetchFromNotif = fetchFromNotif(); // this methods picks a unique record
if (fetchFromNotif != null) {
new Thread()
{
public void run()
{
// updating the data in my Shopping cart DB.
}
};
t.start();
}
}
我的问题是,这是否是每10秒使用Timer
并创建多个线程的正确方法?有没有更好的方法来实现这些要求
对于这种情况,有没有更好的方法来实现队列机制
# 1 楼答案
您还可以确定购物车中何时需要此更新的产品信息,并拉取信息而不是推送信息。也许你不需要实时更新它
也许你可以在用户结账时查看产品库存或价格是否有更新?或者在你确定的某个点上
这样你就可以简化事情,不用担心线程或队列