网络编程中的定时任务如何创建管理

Posted 我要出家当道士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程中的定时任务如何创建管理相关的知识,希望对你有一定的参考价值。

 1、项目需求

        在网络开发过程中经常需要创建定时任务,例如特定包的重传,会话的定时删除或者创建定时任务等。而且由于整个项目中可能出现多种类型的定时器任务,所以我们需要设计一种通用的定时器,可以根据定时器任务类别执行相应的操作。

2、解决思路

        在解决这个问题的时候,我并没有参考别人的思路,只是觉得自己的想法很不错,实现起来也比较容易,所以如果你在看了我的文章之后有更好的想法,热烈欢迎评论区参与讨论。下面开始讲解我的思路。

        我的想法是,设计一个时间线线程,这个线程按照时间线来执行定时任务(定时任务不存在耗时、阻塞型任务)。这个可以通过链表来实现,链表中每个节点都是一个定时任务,链表的节点都是按照时间进行排序(从小到大),线程死循环读取链表中最近时间节点的任务(即头节点后的第一个节点),读取完任务后如果时间还没到,则阻塞到该时间点(不会影响其他时间节点,因为链表按时间排序)。如果在阻塞等待时间点的过程中,添加了新的节点,则打断线程的阻塞状态,插入节点后重新执行。

以上是关于网络编程中的定时任务如何创建管理的主要内容,如果未能解决你的问题,请参考以下文章

如何设定电脑定时关机

动态创建管理定时任务-已完成

Java 如何实现这样的定时任务

用户和用户管理及定时任务复习

如何创建一个定时任务,并且只执行一次

linux 定时任务