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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM