Javascript 如果数字是30的倍数,则提醒用户
我的数据库中有一行具有特定值。有一个系统会自动增加该值,该值不是常数 我需要建立一个脚本,每次这个值是30的倍数时都会提醒用户 演示:Javascript 如果数字是30的倍数,则提醒用户,javascript,Javascript,我的数据库中有一行具有特定值。有一个系统会自动增加该值,该值不是常数 我需要建立一个脚本,每次这个值是30的倍数时都会提醒用户 演示: 值为30时->警报 值为45时->不报警 值为60时->警报 每次用户收到警报时,我都会将事件记录在数据库中,以获得数据历史记录 此脚本将在Node JS服务器中运行,该服务器每天至少运行一次 我的代码: function validateValue(id, interval) { //Callback that returns me the pre
- 值为30时->警报
- 值为45时->不报警
- 值为60时->警报
function validateValue(id, interval) {
//Callback that returns me the present value
retreiveValue(id, function(value) {
//Checks if the value is multiple of 30
if (value % interval == 0 ) {
//Retreive the lastest alert to check if the event was already sent
retreiveLastValue(id, function(configs) {
if (value == configs.value && interval == configs.interval) {
console.log("already sent");
}else{
console.log("send alert");
}
});
}
});
}
但在这种情况下,脚本仅在值为30或60时发送警报。由于服务器将每天运行一次,我想找到一种方法来检查数字是否再次通过了障碍
演示:
- 值为29时->不报警
- 从29岁过渡到30岁期间服务器关闭
- 值为31时->不报警
谢谢。您可以使用除法
数学地板(值/间隔)=n
检查值是否至少为n*间隔,而不是检查值是否为间隔的精确倍数,即模值%interval
为0
。此n
也是需要发送的警报数量,因此请跟踪警报,并在n
大于发送的警报数量时(即,另一个倍数已被交叉)立即发布新警报
我。。。不确定你到底想要什么。。。应该发生的情况是服务器在该转换过程中停机?是否每个用户会话的值都从0开始?您可以保留已发送警报的计数器。然后检查if(Math.floor(value/interval)>alertsCount){sendAlert();alertsCount+=1}
类似的内容?值
以1…3范围内的随机值递增,以模拟中断的连接或该值跳过精确倍数的任何原因。我们的想法是,一旦超过间隔的倍数,就立即发送警报。Jordamus当服务器关闭时,该值会自动递增。我想找到一种方法,当我打开服务器时,检查值是否已经达到30的倍数。是的,Pawel,这正是我需要的,请回答这个问题,这样我可以验证你的答案。非常感谢。
var alertCount = 0;
function validateValue(id, interval) {
//Callback that returns me the present value
retreiveValue(id, function(value) {
if( Math.floor( value / interval) > alertCount ){
sendAlert( value );
alertCount += 1;
}
});
}