1、如果按钮点击事件的优先级比较高的,那么我们就可以丢弃定时任务处理的数据,并中断停止定时器的任务,转向执行按钮点击的事件。
(这个取决于定时任务可以中断停止,或任务可以回滚)

2、定时任务的时间一般都是固定的,比如每天的晚上8点开始任务。当这个时间是固定的时候,一到了定时任务开始的时候,我们的程序就设置前台的按钮为不可点击的状态。

3、那么什么时候恢复前台按钮的功能呢?
如果定时任务有固定的结束时间,我们可以在结束时间后,用程序解除按钮的禁止状态。

4、如果定时任务没有固定的结束时间,那么我们就在程序里加上回调方法,即任务结束总会有个标志的,一旦到达这个标志,我们就回调一个方法,并在这个方法里加上解除前台按钮禁止状态的逻辑。

5、另外一种方法,我们可以不限制前台按钮的点击状态,允许任何时候都可以点击,但点击后,我们可以在代码逻辑里去查看当前是否是在做定时任务,如果不是,则继续点击事件的逻辑。

6、但如果是在做定时任务,我们就忽略这次点击,不打断定时任务,继续定时任务的逻辑。

7、也可以完善一下前面一步的逻辑。
如果是在做定时任务,我们就把当前点击事件的逻辑保存到一个队列里,等定时任务完成了,再回调一个方法,去检查队列里是否有请求需要处理,如有,则执行队列里的请求。
这样功能就很完善了,但逻辑相对来说就复杂很多了。
