典型的定时程序包括以下几种:
保持型通电延时定时器TONR:
用于对许多间隔的累计定时。当输入端(IN)接通时,定时器开始计时,当前值从0开始加1计数,当前值大于等于设定值(PT)时,定时器位置1;当输入IN无效时,当前值保持,IN再次有效时,当前值在原保持值基础上继续计数。TONR定时器用复位指令R进行复位,复位后定时器当前值清零,定时器位为OFF。
利用while True: + sleep()实现定时任务:
使用time模块中的sleep(secs)函数,使当前执行的线程暂停secs秒后再继续执行。这种方式只能设定间隔,不能指定具体的时间。
使用Timeloop库运行定时任务:
Timeloop是一个库,可用于运行多周期任务。
利用threading.Timer实现定时任务:
在Java中,可以使用threading.Timer类来实现定时任务。
利用内置模块sched实现定时任务:
Python的内置模块sched可以用于实现定时任务。
利用调度模块schedule实现定时任务:
在Python中,可以使用schedule库来实现定时任务。
利用任务框架APScheduler实现定时任务:
APScheduler是一个强大的任务调度库,可以用于实现定时任务。
使用分布式消息系统Celery实现定时任务:
Celery是一个分布式任务队列,可以用于实现定时任务。
使用数据流工具Apache Airflow实现定时任务:
Apache Airflow是一个用于创建、调度和监控工作流的平台,可以用于实现定时任务。
Linux的crontab:
在Linux系统中,crontab是一个强大的定时任务工具,可以按照设定的实际时间执行命令。
JDK自带的Timer和TimerTask:
在Java中,Timer和TimerTask类可以用于实现定时任务。
ScheduledExecutorService:
在Java中,ScheduledExecutorService接口可以用于实现定时任务。
Spring Task和Spring Quartz:
在Spring框架中,Task和Quartz可以用于实现定时任务。
这些定时程序各有特点,可以根据具体需求选择合适的工具来实现定时任务。