Java库存变化每少1000就发送一次短信 5C

如何实现库存每少1000就发送一次短信,本来是打算定时的但是可能在定时时间超过1000第一次的就没有统计下来,请问该如何实现

6个回答

你问题的关键无非就是让数据库主动发短信,而不是轮询。看你用什么数据库,sql server有集成服务(ssis),mysql没有,但是支持调用外部程序。

参考:https://www.cnblogs.com/yfceshi/p/7259020.html
你在数据库里加上表触发器(trigger),当你修改库存记录的时候会触发,在里面判断是否<1000,如果是,调用外部程序,而你的外部程序要么自己发短信,要么再调用你的java网站,都可以。

caozhy
贵阳老马马善福专门编写代码的老马就是我! 回复ejiao1233: 修改触发器在每次库存改变都会执行,但是你可以加上判断,只在<1000的时候调用程序发信息。
大约一年之前 回复
ejiao1233
alunSemiconductor 他说的是每减少一次吧,你这个还有点区别哦
大约一年之前 回复

用mq呀,订阅一下减库存消息,每次消息来检查下已扣库存是否到1k整数倍就行

再建立一张表,表的每行都记录1000的整数倍,例如 1000 2000 3000,4000... 每次库存减少 就把库存的值写入到对应的行中,
例如库存之前是3000到4000,现在变成2000到3000,然后就触发发短信

你这个还涉及库存数据会增加的吧,所以监控的不是库存值,应当是变化值,确切地的应该是减少值,所以应当是减库存操作成功后,记录减掉的值,然后累计计算。

具体点,可以这样,减库存成功时,把减掉的数量发到消息队列,消费者监听、累加、判断,超过1000后发短信,并把累加值减去1000;(因为可能一次性减多个,总的变化值不一定刚好是1000,细节问题就看怎么处理了,这里给的建议是严格按照1000个处理的)

  1. 数据库里创建一个表 tb_test
  2. 包含4列test_id test_time test_change test_number (自动编号主键,创建时间,减少的库存累加结果 mod 10000,减少的库存)
  3. 取出最后一行的test_change(也可以按时间从大到小排序,取出该记录的test_change)到程序中
  4. test_change + 新减少的库存test_number ,如果大于等于 1000, 发送短信
  5. test_change = test_change mod 1000
  6. 将[0,系统时间,test_change,test_number]插入到tb_test中

一、数据库里创建一个表 tb_test
二、包含4个字段[test_id test_time test_change test_number] (自动编号主键,创建时间,减少的库存累加结果 mod 1000,减少的库存)
三、取出最后一行的test_change(也可以按时间从大到小排序,取出该记录的test_change)到程序中
四、test_change + 新减少的库存test_number ,如果大于等于 1000, 发送短信
五、test_change = test_change mod 1000
六、将[0,系统时间,test_change,test_number]插入到tb_test中

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sqlserver2012 实现每1000条commit一次
sqlserver2012 有没有commit语句啊,要实现每insert1000条写一次磁盘操作,从而减少io次数,提搞运行速度。应该怎样做?我知道MySQL中有autocommit属性,先关闭autocommit,然后就可以控制每insert1000次commit一次了。rn在SqlServer中怎样实现啊,请大神指点迷津。
每打开一个工程 就少30M。。
rnrn用vs2008 查看别人做的 vc 6下的 mfc练习rnrnrn每打开一个 vs的分区就减少几十M。。rnrn现在已经快没空间了rnrnrn我去哪里删掉这些 临时文件
Java发送SMS短信
SMS即为:Single Message Service。现在很流行发送短信进行校验验证码之类的,而发送短信是需要money的;我们可选择的提供发送短信接口的来源有很多,下面给出一个使用阿里云提供的短信服务,来发送SMS的示例。 准备步骤: 需要两个jar包:aliyun-java-sdk-dysmsapi和aliyun-java-sdk-core的jar包。 注:因为本人是用的Spring...
控制文件为何每三秒变化一次
查看控制文件会发现控制文件每三秒变化一次 [root@orcl controlfile]# ls --full-time total 9808 -rw-r-----. 1 oracle oinstall 10043392 2016-09-21 17:59:30.911566376 +0800 o1_mf_csp43wz4_.ctl [root@orcl controlfile]# ls -
需求平均每四小时变化一次
做开发的时候,需求确定以后,因为某些因素可能会导致需求变化,这是正常的, rnrn但是如果需求平均每四小时变化一次, 怎么处理? 大家给点建议 :)
我的ASP程序每运行一次,内存就少一次,请问何解?在线等侍,急!!!
应该释放的对像都已经释放,Set xxx = Nothingrn像内存仍然是每运行一次就少一次,为什么呢?rn请问有什么办法查出内存消耗在哪里了?谢谢rnrn程序中应用到了FSO对像的
短信的接收,短信的发送
发送短信的几种方式: 第一种:直接发送一个隐式意图,访问android中自带的发送短消息//1发送一个隐式意图用模拟器发送短消息  Intent intent = new Intent(Intent.ACTION_SENDTO);  Uri data = Uri.parse("smsto:"+"手机号码"); intent.setData(dat
网易云发送验证码短信,发送通知短信,java版
网易云中的短信服务 发送验证码短信,创建 MobileMessageSend : import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.http.HttpResponse; import org.apac...
java中邮件的发送和短信的发送
在java开发中需要涉及到短信验证的问题,以及邮箱验证的问题,但是前提是要可以发送短信,和邮件。废话不多说,先从发邮件开始吧。 直接上代码(需要依赖一个包       javax.mail     mail     1.4.7 ) package com.my.util; import java.security.GeneralSecurityExcepti
sqlserver, sum统计时每执行一次,数值就变化一次
sqlserver下 sum计算时,每执行一次,数值就变化一次。rnselect sum(列名) from 表名rn语句很简单。rnrn1.确定没有任何人更新表rn2.为了1,专门修改了表名称进行统计,依然如些rn3.数据行接近1000Wrn4.计算列类型为floatrnrn这个可能是什么问题呢?
java 软件开发短信定时发送
java 软件开发短 信定时发送 java软件 可以直接移植到手机
每刷新一次就提交一次数据的问题?
我想把添加留言与查看留言弄到一页面中,可以每刷新一次网页数据就自动提交这是什么原因.代码如下:rnrnrnrn rn <%=book_name%>--欢迎您好的光临rn rnrnrn rn rn rn rn 心海留言本程序rn rnrn rnrn rn rn -==添加留言==-rnrn rn rn rn rn rn rn 你的名字:rn rn rn rn 选择头像rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rnrnrnrnrn rn rn 你的主页:rn rnrn rn 你的OICQ:rn rnrn rn 你的邮箱:rn rnrn rn 留言主题:rn rnrn rn 留言内容: rn rn rnrnrnrnrn<%rnusername=request.form("username")rnhomeurl=request.form("homeurl")rnqq=request.form("qq")rnemail=request.form("email")rntitle=request.form("title")rncontent=request.form("content")rnface=request.form("face")rnrnsql = "select * from user"rnSet Rs = Server.CreateObject("ADODB.Recordset")rnRs.open sql,conn,3,2rnRs.addnewrnRs("username")=usernamernRs("homeurl")=homeurlrnRs("qq")=qqrnRs("email")=emailrnRs("title")=titlernRs("content")=contentrnRs("face")=facernRs("addtime")=nowrnRs.updaternRs.closernset Rs = nothingrn%>rnrnrnrn rn
redis每点一次键盘就复制一次
[img=https://img-bbs.csdn.net/upload/201409/26/1411711772_42492.png][/img]rn在centos上装了个redis,运行命令redis-cli的时候,每敲一次字母或数字键盘就多一行127.0.0.1:6379>,求大神解答127.0.0.1:6379> 127.0.0.1:6379> c127.0.0.1:6379> cc127.0.0.1:6379> ccc127.0.0.1:6379> cccc127.0.0.1:6379> ccccc127.0.0.1:6379> cccccc127.0.0.1:6379> cccccc 127.0.0.1:6379> cccccc 127.0.0.1:6379> cccccc 127.0.0.1:6379> cccccc
每点一次按钮,页面就加载一次,怎样防止?
在Web窗体上有一个按钮,ID = BtnRndColorrn在其单击事件中:rnrnDim s As New RandomrnBtnRndColor.ForeColor = Color.FromArgb(s.Next(256), s.Next(256), s.Next(256))rnrn每单击一次,该按钮的文字颜色就改变一次,但浏览器上的 后退 按钮也可用了, 按了十次按钮,就可以后退十次!怎样才能避免这种情况呢?(我只想改变颜色,不想产生其它结果)
qt 生成二维码,要求每次打开一次就变化一次二维码
qt生成一个二维码图,要求每次点击运行生成随机不一样的二维码图。有大牛知道如何做么
少有的一次扯淡
青岛的ICPC线下赛打完了,侥幸并且靠队友拿到了一块儿银牌,回来后的第二天计算机组成原理的考试,结果挂掉了,也是我自己学的不好,这几个月的精力基本上都在ACM上,不管怎么样,虽然还是比较遗憾的,但是我不后悔,因为这几个月真的是拼了老命的。虽然我很菜,但是我真正付出了。 笑一笑,打完ICPC决赛退役,继续学习,假期把这门课补了,下学期好好补考。ACM,为了你这科可以挂!
抓包三次握手少一次???
开始客户端发了SYN(1次),完了下一个包就是第3次客户端发的ACK,没有服务回的[FYN.ACK].可是下面客户端还可以继续往服务器发数据! rn这是什么原因导致的?有遇到的吗???
快速排序总少一次
rnint a[]=11,17,10,62;rn int n = a.length;rn int j,temp;rn for(int i=1;i0)rn a[j+1]=a[j]; rn rn j--;rn rn rn a[j]=temp; rn rn rn结果是:10,17,17,62,rn我知道问题在while里,可总抓不住请教该怎么写
SendKeys.SendWait 发送少字符
发送到文本文件里变成了A23456 请教了。谢谢rnrntryrn rn string szSendvalue = this.textBox1.Text == "" ? "A123456" : this.textBox1.Text;rnrn SendKeys.SendWait(szSendvalue);rn SendKeys.SendWait("ENTER");rn rn catch (Exception ex)rn rn MessageBox.Show(ex.Message);rn
短信的发送(两种发送方式)
1)利用系统的短信发送程序 1.1 Intent发送一个隐式意图Intent intent = new Intent(Intent.ACTION_SENDTO); Uri data = Uri.parse("smsto:"+ "15555215556"); intent.setData(data); intent.putExtra("sms_body", etContent.getText().t
smartforms强制分页时,每分页一次就少显示一条记录
smartforms强制分页时,每分页一次就少显示一条记录rnrn 我是在table中最后一个文本下面建的program lines和commandrnrn program中输入 gv_pagelines "一页显示的记录数 输出 gv_modrnrn gv_count “循环到第几条记录rnrn gv_count = gv_count + 1.rnrn gv_mod = gv_count mod gv_pagelines .rn rn command 中分页的条件为 :gv_mod = 0rnrnrn 这样处理所分的页数是正确的,但是分页的时候,每分一次页就会多一条记录显示不出来rnrn rnrn 比喻一页只能显示3条启示, 总共有11条记录,那我这里显示的结果是:前三条记录正确显示,分页后,第二页只显示2条记录,第三页显示2条记录 第四页显示1条记录rnrn 总共显示4页是没错的,分了三次页就有在条没有显示出来,不知道是怎么回事rnrn 请教各位高手帮忙看下,谢谢!rn
input框 长度每变化一次触发一个事件
function onKeyUp(val) { $(second).val(val); }
价格每24小时变化一次如何实现
设置起始价格,价格上限,每24小时增加一次的金额,如何显示每天的最新价格以及下一次变价格的时间与当前时间的差,还有就是下一次的价格。
android sendTextMessage每发送一条短信都弹权限提示
做了一个可以多选联系人的页面,选择之后,sendTextMessage发送多条短信,发送之前有检查发送短信的授权,没授权将请求授权,授权成功后才发送。结果发现Oppo A1601,判断时是已授权,直接走sendInviteSMS(); 调用sendTextMessage逐条发短信,但是每发一条短信都会弹一次授权提示。 经查,设置里面应用是已经被授权发送短信,是Oppo A1601自带的安全中心对
一个求库存变化问题!
我数据库中有一个库存基表(INV)和一个每天进出库表(IOR):rnINV:rnproduct_ID BalanceQtyrn 1234-001 200rn 1234-002 300rn 2000-123 400rnrnIOR:rnProduct_ID ShipQty ReciveQty Datern 1234-001 0 150 2003-2-1rn 1234-002 200 0 2003-2-1rn 2000-123 100 0 2003-2-2rn 1234-001 300 200 2003-2-4rn 1234-002 0 100 2003-2-4rnrn现在要得到库存变化情况:rnProduct_ID Date Qty rn 1234-001 2002-2-1 350rn 1234-002 2003-2-1 100rn 2000-123 2003-2-1 400rnrn 1234-001 2002-2-2 350rn 1234-002 2003-2-2 100rn 2000-123 2003-2-2 300rnrn 1234-001 2002-2-4 250rn 1234-002 2003-2-4 200rn 2000-123 2003-2-4 300rnrn 库存变化表中的Qty为相应product_ID前一天的数量减去当天IOR.ShipQty加上IOR.ReciveQty;不过第一天的Product_ID数量是来自INV.rnrn请问我怎么能得到库存产品发生变化的天数的数量?rnrn
SAP 交货时库存的变化
描述了当SD模组交货时,库存在不同时期的变化。
每五分钟检测时间一次
各位好,我想写一个小程序,每五分钟获取系统时间一次,如果时间区间在0:00到5:00之间则强制关机,获取时间和关机的函数已经写出,但是不知道每五分钟调用一次获取时间函数的算法该如何写,(程序运行后一直驻留在测内存中,自动计时,每五分钟调用获取时间函数一次),各位高手能否给一段代码?
【Java】每2秒查询一次数据库
1.起定时器,每2秒进行一次动作 package connection; import java.util.Timer; import java.util.TimerTask; public class ConnetionToOracle extends TimerTask { public static void main(String[] args) { Timer timer ...
cron表达式,每一小时一次
是这样写吗?rn0/1 * * * *?rnrnrn急用。
java写socket,批一次发送client能收到,为何每二次发送client不能收到
windows下的java编写的socket,unix下C写的socket客户端,rntry rnrn toClient.println("ok"); //客户端可以接收到rn toClient.flush();rnrncatch (Exception e) rnrn System.out.println ("向wldep发送ok出错:"+e);rn return;rnrn rntry rnrn while( (acTmpStr = fromClient.readLine()) != null ) //读取从wldep发过来的已插入成功的文件rn rn try rn rn if( acTmpStr.trim().equals("end") )rn break;rn rn WriteFile( acTmpStr, "rcv" ); //调用写文件函数rn acTmpStr=null;rn rn catch (Exception e) rn rn System.out.println ("RcvFileFromWldep函数中调用WriteFile函数出错");rn return;rn rn acTmpStr = null; rn rn System.out.println ("出了while了");rn rnrncatch (Exception e) rnrn System.out.println ( "RcvFileFromWldep函数出错:"+e );rn return;rnrn rn rn//向wldep发送返回信息,告诉信息传送完毕rn rntry rnrn rn toClient.println("888888"); //客户端不能接收到(为什么)rn toClient.flush();rn System.out.println ("完成");rnrncatch (Exception e) rnrn System.out.println ("向wldep发送返回信息出错:"+e );rn return; rnrnrn------------------------------------------------rn在上面,我有两个地方用了toClient.println();rn可是第一个客户端能收到,为何第二个地方发过去不能收到呢?rn我是用read读的,用recv读也不能收到,为什么呀,可是"完成"这两个字是可以打印出来的呀
java实现每一秒钟执行一次方法
java实现每一秒钟执行一次方法 首先写想要执行的方法,写完方法后加上相应的注解,我是在spring的配置文件中加的注解,如下:         我是把方法写在controller里,注意方法里不要加参数,不然会报错,也不要在方法上加任何注解,比如: /** *七十二小时清除未下单的会员信息和订单信息  * @throws ParseException  */
使用java发送(邮件,短信)帮助类
使用java发送短信的方法有两个(一个是使用阿里的短信服务,一个是使用uoleem短信服务),使用java发送邮件的方法只有一个,这个方法支持群发和单发
发送中英文短信
**基于STM32F103ZET6开发板控制SIM800C模块实现发送中英文短信** 在网上买了个stm32开发板和SIM800C模块板,整理一下模块发短信功能的学习笔记。忘大家勿喷,共勉!利用Unicode 字符集编码 ,发送下面的中英文短信。
短信的发送流程
在android中,google为开发者提供了一个SmsManager用来管理发送和接收短信的类,类似于WifiManager,先看下SmsManager的常用APISmsManager常用APImethod public java.util.ArrayList<java.lang.String> divideMessage(java.lang.String);一条短信只可容纳70个中文,所以当短信
excel发送工资短信
vba+sql+excel实现工资条发送
STM32 发送中文短信
STM32 通过SIM900A发送中文短信源码
CDMA发送英文短信
能够支持几乎所有发送短信的CDMA Modem
安卓 监听短信的发送
最近在弄一个暗扣的项目,需要监听短信发送,有不有一种办法可以监听到是不是有短信在发送,并不需要知道他发送的内容,只需要知道有不有程序触发了发送短信的这个操作,最好是能知道他的包名,我现在已经把自己的APP设置成了默认短信app,但是只有一个短信接收的广播,也能正常知道接收的短信内容,有不有短信发送的广播呢?监听ContentProvider不太好用,有时候可以有时候监听不到content://sms/outbox
SGIP发送长短信
刚刚接触SGIP,如何发送长短信,有高人能指点下吗?
android 发送超长短信
感谢:[url]http://www.pocketdigi.com/20110715/395.html[/url] [color=gray]如果短信内容过长,可以使用SmsManager.divideMessage(String text)方法自动拆分成一个ArrayList数组,再根据数组长度循环发送,或者直接用sendMultipartTextMessage方法发送,参数与sendTex...
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件