美文网首页
MK-商品上下架方案细化

MK-商品上下架方案细化

作者: 龙少侠 | 来源:发表于2015-07-23 11:25 被阅读149次

设置quartz定时器,每秒遍历数据库(可以考虑时延减轻负担),每秒遍历DB。

首先明确 quartz job工作流程:

1、Job
表示一个工作,要执行的具体内容。此接口中只有一个方法
void execute(JobExecutionContext context) ,实现它然后在里面定义遍历数据库操作。
2、JobDetail
JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。
3、Trigger
代表一个调度参数的配置,使用 CronTrigger(String name, String group, String cronExpression) ,定义cronExpression:"0/1 * * * * ?",表示每秒触发一次。
4、Scheduler
代表一个调度容器,由SchedulerFactory创建,一个调度容器中可以注册多个JobDetail和Trigger,调用方法scheduleJob(JobDetail var1, Trigger var2)。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。

流程图 quartz每秒触发测试

接下来就是连接数据库:

1.SimpleJob.java

public class SimpleJob implements Job {
// private static final String findSql_src = "select sale_begin from item_db.item";
public void execute(JobExecutionContext jobCtx)throws JobExecutionException
{
// Connection con_select = new
System.out.println("DB run in " + jobCtx.getTrigger().getClass().getName() + " triggered time is: " + new Date());
}

}

2.WEB-INF下面配置 quartz.properties

#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

#============================================================================
# Configure JobStore
#============================================================================

#org.quartz.jobStore.isClustered = true
#org.quartz.jobStore.clusterCheckinInterval = 15000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 600000
org.quartz.jobStore.dataSource = myDS

#============================================================================
# Configure DataSource
#============================================================================
org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL = jdbc:mysql://192.168.31.180/item_db
org.quartz.dataSource.myDS.user = item_dev
org.quartz.dataSource.myDS.password = 142569
org.quartz.dataSource.myDS.maxConnections = 10

2.配置 applicationContext.xml ,添加:

<bean id="businessReport" class="SimpleJob" />

<bean name="reportTask"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="SimpleJob" />
</bean>

<!-- 触发器 -->
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">

<!-- 指向我们的任务 -->
<property name="jobDetail" ref="reportTask" />

<!-- 每秒运行一次 -->
<property name="cronExpression" value="0/1 * * * * ?" />
</bean>

<!-- 调度器 -->
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 触发器列表 -->
<ref bean="cronTrigger" />
</list>
</property>
<property name="configLocation" value="classpath:quartz.properties" />
</bean>

连接数据库后,执行查询语句" select * " 得到商品上下架时间 returnTime,根据 currentTime == returnTime 条件,获得当前时间需要上下架的商品 id ,根据 id 更新数据表" update * "。

相关文章

  • MK-商品上下架方案细化

    设置quartz定时器,每秒遍历数据库(可以考虑时延减轻负担),每秒遍历DB。 首先明确 quartz job工作...

  • MK-商品上下架需求方案

    1.需求 商家把需要上下架的商品设置一个上下架时间,后台服务端需要按时将该商品上下架。 2.现状 目前服务端:1台...

  • MK-商品上下架系统应对

    参考当当网,京东,海尔等电商峰值策略,不考虑hadoop等高级框架,整理资料如下提供参考。 首先,设计和部署大流量...

  • 淘宝商品上下架技巧?如何快速上下架?

    淘宝的商品如何一键上下架?出售中的商品如何一键下架?仓库的商品如何一键上传?这个都是商家在换季时需要考虑和需要做的...

  • 7.商品管理

    商品管理模块后台主要功能(7个)有:商品更新/商品添加、商品搜索、商品列表、商品上下架、商品详情、富文本上传图片、...

  • python实现监听jd商品上下架

    本代码实现了每秒刷新一次,查看商品是否上架,如果上架将会播放音乐 python3.6环境,需要手动修改商品ID,商...

  • 电子商务系统的组成

    电子商务系统的组成一般包含以下模块: 1、商品管理模块 功能有商品批量上下架、批量调价、库存调度、商品名称撰写、商...

  • 第十章 企业级微信点餐项目(商品上下架)

    卖家商品上下架 标签(空格分隔): springboot java wechat 模板配置技巧 模板修改不重启动项...

  • 商品下架原因详解—学习笔记 41

    商品下架原因详解 一、商品被下架的原因有如下几种: 1、“售完下架”:商品卖完后自动下架(即库存为0) 2、“我下...

  • 在线购物系统 实验二用况图

    用况图 用况描述 商品管理 用况名:上架商品 简述:卖家想上架新的商品,扩大经营的时候,可使用上架商品操作。 参与...

网友评论

      本文标题:MK-商品上下架方案细化

      本文链接:https://www.haomeiwen.com/subject/prnpqttx.html