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