Javascript 如果数字是30的倍数,则提醒用户

Javascript 如果数字是30的倍数,则提醒用户,javascript,Javascript,我的数据库中有一行具有特定值。有一个系统会自动增加该值,该值不是常数 我需要建立一个脚本,每次这个值是30的倍数时都会提醒用户 演示: 值为30时->警报 值为45时->不报警 值为60时->警报 每次用户收到警报时,我都会将事件记录在数据库中,以获得数据历史记录 此脚本将在Node JS服务器中运行,该服务器每天至少运行一次 我的代码: function validateValue(id, interval) { //Callback that returns me the pre

我的数据库中有一行具有特定值。有一个系统会自动增加该值,该值不是常数

我需要建立一个脚本,每次这个值是30的倍数时都会提醒用户

演示:

  • 值为30时->警报
  • 值为45时->不报警
  • 值为60时->警报
每次用户收到警报时,我都会将事件记录在数据库中,以获得数据历史记录

此脚本将在Node JS服务器中运行,该服务器每天至少运行一次

我的代码:

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;
            }
    });
}