-
Crontab实现从指定时间开始每隔多少秒(分钟/天)执行一次脚本的方法
2021-01-28 14:10:29Crontab实现从指定时间开始每隔多少秒(分钟/天)执行一次脚本的方法背景Crontab的格式Crontab的使用与局限性合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个...Crontab实现从指定时间开始每隔多少秒(分钟/天)执行一次脚本的方法
背景
大家好,最近发生了很多事,已经很久没有在CSDN上推出新文章了。总之呢,我现在是一名大数据开发工程师,会从今天开始不定期地分享自己学到的新技术。如果你对大数据感兴趣的话,欢迎关注我。
最近接到了上级分配的一个任务,希望我编写一个linux的定时任务脚本,能够实现从当前时间开始每隔多少天执行一次脚本。这篇文章的故事就这么开始了~Crontab的格式
基于这个问题,我开始百度查询关于crontab的知识,我重点讲讲我发现的crontab的局限性,在阐述我的发现之前,先让我们学习一下crontab的格式:
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
- minute: 区间为 0 – 59
- hour: 区间为0 – 23
- day-of-month: 区间为0 – 31
- month: 区间为1 – 12. 1 是1月. 12是12月.
- Day-of-week: 区间为0 – 7. 周日可以是0或7.
Crontab可以说是一款非常优秀的定时启动任务工具,可以让我们指定每隔多少分钟、多少小时、多少天、几个月或者每个星期的星期几来执行任务。
Crontab的使用与局限性
再优秀的工具都有其局限性,在我使用Crontab的过程当中,我发现在指定不同的时间间隔时,Crontab都有其局限性:
- minute: 只可以以一个小时为范围来指定间隔多少分钟。
- hour: 只可以以一天为范围来指定间隔多少小时。
- day-of-month: 只可以以一个月为范围指定间隔多少天。
- month: 只可以以一年为范围指定间隔几个月。
我上面的阐述可能不太易于理解,没关系,让我们结合具体实例来讲解:
- 每隔7分钟运行一次命令:
*/7 * * * * /root/bin/check-status.sh
比如说我在今天的10:05分开启了这个定时任务,我的本意是希望这个定时任务是从当前时间开始每隔7分钟执行。但是事实上不是的,crontab的分钟任务是以一个小时为单位和范围的,也就是该任务会在10:07分第一次执行,并每隔7分钟执行一次,待10:56分的这一次执行完成后,下一次并不会在11:03分执行,而是会每隔一小时重新刷新计时,所以下一次会在11:00分执行,再在11:07分执行,以此反复。这就会导致在两个小时的交界处任务的频繁执行,同时,如果我希望任务每隔61分钟执行一次,目前的crontab也无法很好解决。 - 每隔10小时运行一次命令:
0 */10 * * * /root/bin/check-status.sh
比如说我在今天的9:00 am开启了这个定时任务,我的本意是希望这个定时任务是从当前时间开始每隔10小时执行。但事实上不是的,crontab的小时任务是以一天为单位和范围的,也就是该任务会在10:00 am第一次执行,并每隔10小时执行一次。待20:00pm的这一次执行完成后,由于在等待下一次的执行的过程中,时间来到了两天的交界处,因此定时任务会被重新刷新。也就是下一次任务会在第二天的00:00 am时执行,然后再在10:00am执行,以此反复。这就会导致在两天的交界处任务的频繁执行,同时,如果我希望任务每隔25小时执行一次,目前的crontab也无法很好解决。 - 每隔8天运行一次命令:
0 0 */8 * * /root/bin/check-status.sh
比如说我在1月的6日开启了这个定时任务,我的本意是希望这个定时任务是从今日开始每隔8日执行。但事实上不是的,crontab的天任务是以一个月为单位和范围的,同时又由于每个月的起始值是1日,也就是该任务会在9日的零时零分第一次执行,然后在17日、25日的零时零分分别执行一次。再之后就到了两个月的交界处,该定时任务会被重新刷新,也就是下一次任务会在2月1日的零时零分执行,以此反复。这就会导致在两个月的交界处任务的频繁执行,同时,如果我希望任务每隔32天执行一次,目前的crontab也无法很好解决。 - 每隔5个月执行一次命令:
0 0 1 */5 * /root/bin/check-status.sh
比如说我在2020年4月1日开启了这个定时任务,我的本意是希望这个定时任务从本月开始每隔5个月执行。但事实上不是的,crontab的月任务是以一年为单位和范围的,同时又由于每年的起始值是1月,也就是该任务会在6月1日的零时零分第一次执行,然后在11月1日的零时零分执行一次。再之后就到了两年的交界处,该定时任务会被重新刷新,也就是下一次任务会在2021年的1月1日的零时零分执行,以此反复。这就会导致在两年的交界处任务的频繁执行,同时,如果我希望任务每隔13个月执行一次,目前的crontab也无法很好解决。
解决方法
基于以上crontab存在的局限性和我的需求(需指定从当前时刻开始每隔多少时间执行一次任务),我摸索了一阵子之后,得到了一个不太华丽的解决办法,但是可以帮助广大网友们在时间短、任务重的情形之下应急使用。
解决办法同样是在/etc/cron.d/下编写一个定时启动脚本(crontab方面的基础网上都有,请码友们自行补充学习),只是我们的代码略为复杂。脚本内容如下:SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO="" lastRunTime=1611803325 seconds=120 */1 * * * * root source /etc/profile && intervalRunTime=$[ (`date +\%s` - $lastRunTime) \% $seconds ] && if [( $intervalRunTime -ge 0 ]] && [[ $intervalRunTime -lt 60 ]];then echo $intervalRunTime>>$HOME/crontab.log; fi
通过观察以上我编写的代码,大家可以发现我是通过将当前时间绝对秒数作为初始声明变量赋予lastRunTime变量,然后再将间隔时间的秒数(若是间隔2分钟就是120秒,间隔1小时就是3600秒)作为初始声明变量赋予seconds变量。
之后,每隔一分钟定时任务脚本就会判断intervalRunTime(当前时间绝对秒数-lastRunTime)是否大于等于0并且小于60,若满足条件,则echo HOME/crontab.log(码友们可以将这部分修改为你们自己需要执行的任务)。
之所以判断条件是大于等于0并且小于60,是因为crontab的最小间隔时间为1分钟,因此将定时任务在每隔seconds后的那一分钟内执行一次。我的解决办法仍不够优雅,希望码友们如果想到了更好的解决办法或者有什么疑问的话,欢迎在评论区讨论~
-
js实现某年某月某天距离现在有多少天,多少分,多少秒,动态显示!
2017-06-05 20:20:42简单描述一下问题:给定一个年月日时分秒,在网页中动态显示,距离今天已经有多少天,多少小时,多少分钟,多少秒. 1.用到的这些jQuery和jscex文件都可以从网上下载,这里不再赘述 2.这里还要引用一个.js文件,...简单描述一下问题:给定一个年月日时分秒,在网页中动态显示,距离今天已经有多少天,多少小时,多少分钟,多少秒.
1.用到的这些jQuery和jscex文件都可以从网上下载,这里不再赘述
2.这里还要引用一个.js文件,是自己写的,方便操作<script src=" jquery-1.11.1.min.js "></script> <script type="text/javascript" src="jscex.min.js"></script> <script type="text/javascript" src="jscex-parser.js"></script> <script type="text/javascript" src="jscex-jit.js"></script> <script type="text/javascript" src="jscex-builderbase.min.js"></script> <script type="text/javascript" src="jscex-async.min.js"></script> <script type="text/javascript" src="jscex-async-powerpack.min.js"></script>
<script type="text/javascript" src="functions.js" charset="utf-8"></script>
具体的内容如下:
var $win = $(window); var clientWidth = $win.width(); var clientHeight = $win.height(); $(window).resize(function() { var newWidth = $win.width(); var newHeight = $win.height(); if (newWidth != clientWidth && newHeight != clientHeight) { location.replace(location); } }); (function($) { $.fn.typewriter = function() { this.each(function() { var $ele = $(this), str = $ele.html(), progress = 0; $ele.html(''); var timer = setInterval(function() { var current = str.substr(progress, 1); if (current == '<') { progress = str.indexOf('>', progress) + 1; } else { progress++; } $ele.html(str.substring(0, progress) + (progress & 1 ? '_' : '')); if (progress >= str.length) { clearInterval(timer); } }, 75); }); return this; }; })(jQuery); function timeElapse(date){ var current = Date(); var seconds = (Date.parse(current) - Date.parse(date)) / 1000; var days = Math.floor(seconds / (3600 * 24)); seconds = seconds % (3600 * 24); var hours = Math.floor(seconds / 3600); if (hours < 10) { hours = "0" + hours; } seconds = seconds % 3600; var minutes = Math.floor(seconds / 60); if (minutes < 10) { minutes = "0" + minutes; } seconds = seconds % 60; if (seconds < 10) { seconds = "0" + seconds; } var result = "第 <span class=\"digit\">" + days + "</span> 天 <span class=\"digit\">" + hours + "</span> 小时 <span class=\"digit\">" + minutes + "</span> 分钟 <span class=\"digit\">" + seconds + "</span> 秒"; $("#clock").html(result); }
3.不多说了,直接上完整代码,代码上有注释<body> <div id="clock-box"> <span></span><font color="#33CC00">我们</font> <span>已经是……</span> <div id="clock"></div> </div> </body> <script src=" jquery-1.11.1.min.js "></script> <script type="text/javascript" src="jscex.min.js"></script> <script type="text/javascript" src="jscex-parser.js"></script> <script type="text/javascript" src="jscex-jit.js"></script> <script type="text/javascript" src="jscex-builderbase.min.js"></script> <script type="text/javascript" src="jscex-async.min.js"></script> <script type="text/javascript" src="jscex-async-powerpack.min.js"></script> <script type="text/javascript" src="functions.js" charset="utf-8"></script> <script> var textAnimate = eval(Jscex.compile("async", function () { var together = new Date(); together.setFullYear(2014,10, 15); //时间年月日,注意月份是0-11 together.setHours(0); //小时 together.setMinutes(0); //分钟 together.setSeconds(0); //秒前一位 together.setMilliseconds(0); //秒第二位 $("#clock-box").fadeIn(500); while (true) { timeElapse(together); $await(Jscex.Async.sleep(1000)); } })); textAnimate().start(); </script>
4.希望大家有什么不懂得,可以直接查官方文档,穿"一手鞋"。快乐学习,快乐编程! -
计算传入时间距今多少天/时/分/秒
2016-01-15 17:44:57/* @brief 计算传入时间距今多少天/时/分/秒 @param ... @return 多少天/小时/分钟/秒前 */ + (NSString *)getTimeStringWithTimeSp:(id)timeSp { //实例化一个NSDat/*
@brief 计算传入时间距今多少天/时/分/秒
@param timeSp 传入时间戳(有时差),可以是NSNumber、NSString类型
@return 多少天/小时/分钟/秒前
*/
+ (NSString *)getTimeStringWithTimeSp:(id)timeSp
{
//实例化一个NSDateFormatter对象
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *pubDate = nil;
// NSNumber
if ([timeSp isKindOfClass:[NSNumber class]]) {
NSNumber *timesp = (NSNumber *)timeSp;
NSString *str = [timesp stringValue]; //时间戳
NSTimeInterval timer = [str doubleValue]-28800;//因为时差问题要减8小时 == 28800;
pubDate = [NSDate dateWithTimeIntervalSince1970:timer];
}
// NSString
else {
NSString *timesp = (NSString *)timeSp;
pubDate = [dateFormatter dateFromString:timesp];
}
// 获取当前时间
NSDate *curDate = [NSDate date];
// 得到时间秒差
NSTimeInterval time = [curDate timeIntervalSinceDate:pubDate];
NSMutableString *timeString = [NSMutableString string];
if (time >= 86400) {
int day = time/86400;
[timeString appendFormat:@"%d天前",day];
}
else if (time >= 3600) {
int hour = time/3600;
[timeString appendFormat:@"%d小时前",hour];
}
else if (time >= 60) {
int minute = time/60;
[timeString appendFormat:@"%d分钟前",minute];
}
else {
int second = time;
[timeString appendFormat:@"%d秒前",second];
}
return timeString;
}
-
3600000毫秒等于多少小时_将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...
2021-01-17 12:38:00慕仰8121524我做了一些基准测试,看看最快...如果您的输入毫秒不限于一天(结果可能是143:59:59.999),这些是从快到慢的选项:// 0.86 msstatic string Method1(int millisecs){ int hours = millisecs / 3600000; ...慕仰8121524
我做了一些基准测试,看看最快的方法是什么,这些是我的结果和结论。我运行了每个方法10M次并添加了评论,每次运行的平均时间。如果您的输入毫秒不限于一天(结果可能是143:59:59.999),这些是从快到慢的选项:// 0.86 msstatic string Method1(int millisecs){ int hours = millisecs / 3600000; int mins = (millisecs % 3600000) / 60000; // Make sure you use the appropriate decimal separator return string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", hours, mins, millisecs % 60000 / 1000, millisecs % 1000);}// 0.89 msstatic string Method2(int millisecs){ double s = millisecs % 60000 / 1000.0; millisecs /= 60000; int mins = millisecs % 60; int hours = millisecs / 60; return string.Format("{0:D2}:{1:D2}:{2:00.000}", hours, mins, s);}// 0.95 msstatic string Method3(int millisecs){ TimeSpan t = TimeSpan.FromMilliseconds(millisecs); // Make sure you use the appropriate decimal separator return string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", (int)t.TotalHours, t.Minutes, t.Seconds, t.Milliseconds);}如果您的输入毫秒数限制为一天(结果将永远不会超过23:59:59.999),则这些选项可以从更快到更慢:// 0.58 msstatic string Method5(int millisecs){ // Fastest way to create a DateTime at midnight // Make sure you use the appropriate decimal separator return DateTime.FromBinary(599266080000000000).AddMilliseconds(millisecs).ToString("HH:mm:ss.fff");}// 0.59 msstatic string Method4(int millisecs){ // Make sure you use the appropriate decimal separator return TimeSpan.FromMilliseconds(millisecs).ToString(@"hh\:mm\:ss\.fff");}// 0.93 msstatic string Method6(int millisecs){ TimeSpan t = TimeSpan.FromMilliseconds(millisecs); // Make sure you use the appropriate decimal separator return string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", t.Hours, t.Minutes, t.Seconds, t.Milliseconds);}如果你的输入只是几秒钟,那么方法会稍快一点。同样,如果您的输入秒数不限于一天(您的结果可能是143:59:59):// 0.63 msstatic string Method1(int secs){ int hours = secs / 3600; int mins = (secs % 3600) / 60; secs = secs % 60; return string.Format("{0:D2}:{1:D2}:{2:D2}", hours, mins, secs);}// 0.64 msstatic string Method2(int secs){ int s = secs % 60; secs /= 60; int mins = secs % 60; int hours = secs / 60; return string.Format("{0:D2}:{1:D2}:{2:D2}", hours, mins, s);}// 0.70 msstatic string Method3(int secs){ TimeSpan t = TimeSpan.FromSeconds(secs); return string.Format("{0:D2}:{1:D2}:{2:D2}", (int)t.TotalHours, t.Minutes, t.Seconds);}如果您的输入秒数限制为一天(您的结果将永远不会超过23:59:59):// 0.33 msstatic string Method5(int secs){ // Fastest way to create a DateTime at midnight return DateTime.FromBinary(599266080000000000).AddSeconds(secs).ToString("HH:mm:ss");}// 0.34 msstatic string Method4(int secs){ return TimeSpan.FromSeconds(secs).ToString(@"hh\:mm\:ss");}// 0.70 msstatic string Method6(int secs){ TimeSpan t = TimeSpan.FromSeconds(secs); return string.Format("{0:D2}:{1:D2}:{2:D2}", t.Hours, t.Minutes, t.Seconds);}作为最后的评论,让我补充一点,我注意到string.Format如果你使用D2而不是更快一点00。
-
php函数实现显示几秒前,几分钟前,几天前等方法(网络上什么都有)
2018-05-24 15:39:00现在很多网站的时间显示都很人性化,不再是单纯的年月日时分秒,而是根据数据更新的时间与当前时间进行比较,实现多少秒前,多少分钟前,多少小时前! 代码一: 1 function format_date($time){... -
[益智]:一天之中,时针和分针共重叠多少次?
2020-10-11 02:54:54在一天之中,时针和分针共重叠多少次?你知道它们重叠时的具体时间吗? 正确思路: 这可以归结为速度差的相遇问题,分钟每走一圈多都会和时针相遇。重点是算相遇的具体时间: 0点0分一次 1点5分多一点(准确说是1×... -
使用C#把发表的时间改为几年前,几个月,几天前,几小时前,几分钟前,或几秒前
2017-05-25 15:05:28我们在评论中往往会看到多少天前,多少小时前。 实现原理:现在时间-过去时间 得到的时间差来做比较 下面我定义了一个Helper类,大家直接引用即可,参数就是时间差,注意时间差类型是TimeSpan类型,而不是... -
使用C#把发表的时间改为几年前,几个月,几天前,几小时前,几分钟前,或几秒前...
2017-01-07 14:44:00我们在评论中往往会看到多少天前,多少小时前。 实现原理:现在时间-过去时间 得到的时间差来做比较 下面我定义了一个Helper类,大家直接引用即可,参数就是时间差,注意时间差类型是TimeSpan类型,而不是DateTime... -
【小5聊】js基础之计算两个时间相差多少天小实现分析
2019-12-24 11:53:50通过时间戳的方式获取到相差的天数 1、假设时间A是-2019-11-12 13:14:15,那么输出...3、一天内的毫秒值:1天*24小时*60分钟*60秒*1000毫秒=1*24*60*60*1000,如下 4、两个时间戳相减,1575090855000-1573535655... -
计算指定时间与当前的时间差 比如,3天前、10分钟前
2017-08-19 22:10:01计算指定时间与当前的时间差 比如,3天前、10分钟前(这个在项目中经常遇到,所以记录了下来) ... * @return 多少(秒or分or天or月or年)+前 (比如,3天前、10分钟前) */ +(NSString *) -
疑惑:代理IP到底有多少种分类
2020-12-07 16:25:28其相同点在于访问https协议网站...根据是否变化分类,可以分为动态代理IP和静态代理IP,动态代理IP经常变动,短则几秒就变,长则几十分钟变一次,动态代理又分为短效代理和隧道代理;静态代理IP固定不变,短则一两天不. -
Java中天、时、分、秒之间的高效换算
2011-06-10 09:23:00TimeUnit是一个枚举类型,可以将时间方便快捷的转换为(天、时、...1、我们将1个小时转换为多少分钟、多少秒 1小时转换分钟数为60分钟 TimeUnit.HOURS.toMinutes(1) =>60 1小时转换分钟数为3600秒 TimeUnit.HOURS.t... -
oracle 求两个时间段相差分钟数
2018-03-06 16:03:08在oracle 中,时间加减运算后的结果是以天为单位的,如果想得到秒,则乘以 86400(一天的秒数 24*60*60) 就好了 想得到分 24*60 --天 select (to_date( t.A,'yyyy-mm-dd hh24:mi:ss')- to_d... -
c#计算天数,逻辑运算符,if结构(第一个包三文件夹)
2019-03-02 11:02:13计算秒数是多少天多少小时多少分钟多少秒 int second = 865445564; //给秒数赋值 int day = second / (60 * 60 * 24); //计算天数 second=second% (60 * 60 * 24... -
asp.net计算两个日期时间之间的差值(天数、小时、分、秒等)
2014-02-13 11:55:35两个时间相差多少 .net中的timespan应用2008/11/10 11:54TimeSpan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位... -
两个日期相减怎么得到小时数_计算两个日期时间之间的差值(天数、小时、分、秒等)...
2020-12-20 18:33:37两个时间相差多少 .net中的timespan应用2008/11/10 11:54TimeSpan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位... -
BOM对象 概述 相关操作 DOM的概念 元素的获取 属性操作
2020-05-21 19:08:074. 通过相差的毫秒数换算出是 多少天多少小时多少分钟多少秒 4-1. 换算天数 总的秒数 / 一天的秒数 得到的就是 多少天(小数) 我们只需要整天数, 不够整天的按照小时算 Math.floor() 取整一下 4-2. 换算小时 总的秒数... -
多功能单位换算器(常用单位转换).rar
2019-09-05 06:02:26软件介绍: 一款多功能的单位换算工具,能够进行长度、面积、体积、质量、力、发光强度、温度亮度、压强及功...例如,能够换算1年是多少个月,多少天,一年共计多少小时,多少分钟多少秒,总之是一款很实用的小工具。 -
求两个时间的时间差
2020-05-23 16:32:56通过相差的毫秒数换算出是 多少天多少小时多少分钟多少秒 换算天数 总的秒数 / 一天的秒数 得到的就是 多少天(小数) 我们只需要整天数, 不够整天的按照小时算 Math.floor() 取整一下 换算小时 总的秒数 -
java.util.concurrent-------TimeUnit(转)
2015-05-15 17:29:00TimeUnit是一个枚举类型,可以将时间方便快捷的转换为(天、时、分、秒、...1、我们将1个小时转换为多少分钟、多少秒 1小时转换分钟数为60分钟 TimeUnit.HOURS.toMinutes(1) =>60 1小时转换分钟数为3600秒 ... -
日期倒计时器软件Date Time Counter 6.0中文版含许可证.rar
2019-09-05 04:16:42甚至显示还剩余多少小时,多少分钟、多少秒。Date Time Counter 用来统计您过去或将来的重要事件距当前时间的年、月、周、天、时、分、秒数,例如出生、结婚及周年纪念。对于将来事件,它相当于一个倒计时器;... -
Java8日期和时间段的计算
2020-02-25 16:50:30在编写代码的过程中,计算一个方法具体耗时多少分钟,执行了多少秒等需求,一般也是借助System.currentTimeMillis()。 long start = System.currentTimeMillis(); //业务逻辑 //... long end = ... -
js怎么计算时间差
2016-05-10 19:05:56如题,时间A,时间B,计算两个时间差。 js里有一个方法parse();是Date的方法。 它返回1970年到某天的...再用这个数字算出相差多少年,多少月,多少日,多少小时,多少分钟,多少秒,甚至多少毫秒。就ok了。 ... -
js时间处理——显示多久时间前
2021-01-26 11:57:35通过比较差值与60秒,1小时,2天大小,判断是多少秒前,多少分钟前,昨天,前天,或具体日期具体可看代码 代码已经封装,可以放到独立的js文件作为单独的工具函数使用 /* eslint-disable */ // 分,时,天,转秒 ...
-
微信支付商户平台app支付开通方法详解
-
Laravel-admin表单Form多级下拉复选框组件multiCheckbox(优化版).rar
-
addseller.css
-
基于多特征融合的中文微博评价对象抽取方法
-
Ubuntu20.04安装deepin-wine微信、QQ
-
ubuntu18.04 roscore无效
-
PSCS3.zip文件包含ps软件及各种素材
-
报错 -> 问题 -> 解决 ->原因
-
[leetCode]1178. 猜字谜
-
Unity ILRuntime框架设计
-
用户至上的设计细节
-
1114 Family Property (25 分)
-
通过枢轴选择进行物体识别的高效图像表示
-
2021-02-26
-
linux基础入门和项目实战部署系列课程
-
musiccenter
-
医保业务综合服务终端(III类)送检指南.pdf
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
名称空间是开放的
-
金融云徐敏:云计算将给互联网金融带来怎样的新浪潮?