JS 随机时间 定时任务

背景

前两天,有个从事人事工作的朋友,每天需要在boss上打招呼.

问我能不能批量搞一下啊~

我说简单,几分钟搞定~~~

实现

写了一版,发现是所有打招呼在几秒内完成的.

 

想实现一个间隔随机几秒执行.....

 

 

      
  //定时任务总次数
        var maxCount = 55;
        //随机单位时间范围
        var minNum = 1, maxNum = 10;
        //执行时间单位(1毫秒,10/10毫秒;100/百秒;1000/秒,)
        var p_unit = 1000;

        //随机数函数
        function randomNum(minNum, maxNum) {
            switch (arguments.length) {
                case 1:
                    return parseInt(Math.random() * minNum + 1, 10);
                    break;
                case 2:
                    return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
                    break;
                default:
                    return 0;
                    break;
            }
        }

        //时间格式化
        function timestampToTime(timestamp) {
            var date = new Date();//时间戳为10位需*1000,时间戳为13位的话不需乘1000
            var Y = date.getFullYear() + '-';
            var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
            var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
            var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
            var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
            var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());

            strDate = Y + M + D + h + m + s;
            return strDate;

        }

        //随机数实例函数
        function num(unit) {
            if (!unit)
                unit = p_unit;
            var n = randomNum(1, 5);
            var nowDate = new Date().getTime();
            console.log(timestampToTime(nowDate) + "间隔" + n * unit / 1000 + "秒执行");
            return n * unit;
        }
        //执行任务.
        var ii = setInterval(befor, num());
        var index = 1;

        function befor() {

            //方法可取消由 setInterval() 函数设定的定时执行操作
            clearInterval(ii);

            //主函数
            codeAddress();
            console.log("淘小人提醒您:任务总次数>>>"+maxCount+",  当前执行次数>>>" + index)

            //递归

            if (index <= 55) {
                ii = setInterval(befor, num())
            } else {
                console.log("淘小人提醒您,任务完毕.总执行次数>>>" + index)
            }
            //递归使用,当前索引+1
            index = index + 1;
        }

 

posted @ 2020-04-26 11:28  淘小人  阅读(2342)  评论(0编辑  收藏  举报