>백엔드 개발 >파이썬 튜토리얼 >Python은 예약된 작업을 구현합니다.

Python은 예약된 작업을 구현합니다.

高洛峰
高洛峰원래의
2017-02-10 09:22:551945검색

이 글에서는 예약된 작업을 구현하기 위해 Python을 주로 소개합니다. 관심 있는 친구들이 참고할 수 있는 5가지 방법이 있습니다.

Python에서 예약된 작업을 구현하는 방법에는 여러 가지가 있습니다. 다음은 몇 가지

루프 슬립입니다.

이것은 가장 간단한 방법입니다. 실행할 항목을 루프 작업에 두는 것입니다. 그런 다음 실행하기 전에 잠시 잠을 자십시오. 단점은 조절이 쉽지 않고 잠이 차단 기능이 있다는 점이다.

def timer(n): 
  ''''' 
  每n秒执行一次 
  ''' 
  while True:  
    print time.strftime('%Y-%m-%d %X',time.localtime())  
    yourTask() # 此处为要执行的任务  
    time.sleep(n)

Threading의 타이머:

Threading 모듈의 타이머는 구현을 도와줍니다. 예약된 작업이며 차단되지 않습니다.

예를 들어 3초 후에 helloworld를 인쇄합니다.

def printHello(): 
  print "hello world" 
 
Timer(3, printHello).start()

예를 들어 3초마다 helloworld를 인쇄합니다.

def printHello(): 
  print "Hello World" 
  t = Timer(2, printHello) 
  t.start() 
 
 
if __name__ == "__main__": 
  printHello()

sched 모듈 사용:

sched는 일종의 예약(지연 처리)입니다. 기구).

# -*- coding:utf-8 -*- 
# use sched to timing 
import time 
import os 
import sched 
 
 
# 初始化sched模块的scheduler类 
# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。 
schedule = sched.scheduler(time.time, time.sleep) 
 
 
# 被周期性调度触发的函数 
def execute_command(cmd, inc): 
  ''''' 
  终端上显示当前计算机的连接情况 
  ''' 
  os.system(cmd) 
  schedule.enter(inc, 0, execute_command, (cmd, inc)) 
 
 
def main(cmd, inc=60): 
  # enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数, 
  # 给该触发函数的参数(tuple形式) 
  schedule.enter(0, 0, execute_command, (cmd, inc)) 
  schedule.run() 
 
# 每60秒查看下网络连接情况 
if __name__ == '__main__': 
  main("netstat -an", 60)

타이밍 프레임워크 APScheduler 사용:

APScheduler는 다음을 기반으로 합니다. Quartz Python의 예약된 작업 프레임워크입니다. 날짜, 고정 시간 간격 및 crontab 유형을 기반으로 작업을 제공하고 작업을 유지할 수 있습니다.

아직 직접 사용해본 적은 없는데, 좀 더 사용해본 뒤 추가하겠습니다.

Windows 예약 작업 사용:

여기에서 필요한 Python 프로그램을 exe 파일로 패키징한 다음 아래에서 실행할 수 있습니다. Windows 예약된 실행을 설정합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 PHP 중국어 웹사이트를 지지해주시기를 바랍니다.

Python에서 예약된 작업을 구현하는 것과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.