这个思路比较好,在此记录下,在java里面比较鸡肋,毕竟有很多大框架直接完成了工作。
但在C/C++里面这个思路就比较重要了。在此记录下。
如下代码:
while(true){
long time = System.currentTimeMillis();
int is15Min = (int)((time - 1602259200000l) % (15 * 60 * 1000));
int is1Min = (int)((time - 1602259200000l) % (1 * 60 * 1000));
//1分钟
System.out.println("is1Min:" + is1Min);
if(is1Min < 10 * 1000){
//TODO
}
if((is15Min < 60 * 1000)){
//TODO
}
//TODO
}
这里的:1602259200000为
先减去上面那个值,在和15分钟取模,当为整点时这个值为0,但越远时,这个值越大。
一般我们可以这样写。当要一分钟调用一次时,is1Min < 10 * 1000。然后里面在sleep 10秒就可以了。
同样如果15分钟,就如上所示。