백엔드 개발 파이썬 튜토리얼 Python3을 통해 작업의 타임 루프 실행 구현

Python3을 통해 작업의 타임 루프 실행 구현

Apr 19, 2019 pm 01:15 PM
python3 threading time

실제 개발에서는 종종 다음과 같은 요구 사항이 있습니다. 특정 기능 모듈이나 작업이 동일한 기간 내에 주기적으로 실행되어야 합니다. 여기에는 타이머라는 개념이 있습니다. 구체적으로 타이머를 어떻게 구현해야 할까요? 타이머에는 스레드 실행을 제어하고 시스템 소비를 줄이는 등 매우 실용적인 기능이 많이 있습니다. 이제 Python3에서 타이밍 함수 구현을 연습해 보겠습니다.

Python3을 통해 작업의 타임 루프 실행 구현

예를 들어 Python을 사용하여 크롤러 시스템을 개발할 때 스레드 서비스를 구현하여 백그라운드에서 데이터 캡처 상태를 모니터링하려면 타이머가 도움이 될 수 있습니다. .

[동영상 추천: Python3 동영상 튜토리얼]

[수동 권장사항: Python 중국어 매뉴얼]

Python 문서를 통해 타이밍 기능을 구현하는 threading.Timer()를 찾을 수 있습니다:

간단한 구현 코드:

import threading
def func1(a):
    #Do something
    print('Do something')
    a+=1
    print(a)
    print('当前线程数为{}'.format(threading.activeCount()))
    if a>5:
        return
    t=threading.Timer(5,func1,(a,))
    t.start()
로그인 후 복사

렌더링:

Python3을 통해 작업의 타임 루프 실행 구현

파이썬을 사용하여 세 가지 타이밍 작업 실행 방법을 구현할 수 있습니다.

1 타이밍 작업 코드

#!/user/bin/env python
#定时执行任务命令
import time,os,sched
schedule = sched.scheduler(time.time,time.sleep)
def perform_command(cmd,inc):
  os.system(cmd)
  print('task')
def timming_exe(cmd,inc=60):
  schedule.enter(inc,0,perform_command,(cmd,inc))
  schedule.run()
print('show time after 2 seconds:')
timming_exe('echo %time%',2)
로그인 후 복사

2. 주기적 작업 실행

#!/user/bin/env python
import time,os,sched
schedule = sched.scheduler(time.time,time.sleep)
def perform_command(cmd,inc):
  #在inc秒后再次运行自己,即周期运行
  schedule.enter(inc, 0, perform_command, (cmd, inc))
  os.system(cmd)
def timming_exe(cmd,inc=60):
  schedule.enter(inc,0,perform_command,(cmd,inc))
  schedule.run()#持续运行,直到计划时间队列变成空为止
print('show time after 2 seconds:')
timming_exe('echo %time%',2)
로그인 후 복사

3. 명령어 실행

#!/user/bin/env python
import time,os
def re_exe(cmd,inc = 60):
  while True:
    os.system(cmd)
    time.sleep(inc)
re_exe("echo %time%",5)
로그인 후 복사

요약: Python에서 타이머를 구현하는 방법은 스케줄 및 스레딩 구현이며 구체적인 사용법은 실제 상황에 따라 유연하게 사용해야 합니다.

가장 일반적으로 사용되는 두 가지 모듈: 스레딩, Sched

threading 모듈 사용법:

import threading ,time
from time import sleep, ctime
class Timer(threading.Thread):
        """
        very simple but useless timer.
        """
        def __init__(self, seconds):
                self.runTime = seconds
                threading.Thread.__init__(self)
        def run(self):
                time.sleep(self.runTime)
                print ("Buzzzz!! Time's up!")
class CountDownTimer(Timer):
        """
        a timer that can counts down the seconds.
        """
        def run(self):
                counter = self.runTime
                for sec in range(self.runTime):
                        print (counter)
                        time.sleep(1.0)
                        counter -= 1
                print ("Done")
 
class CountDownExec(CountDownTimer):
        """
        a timer that execute an action at the end of the timer run.
        """
        def __init__(self, seconds, action, args=[]):
                self.args = args
                self.action = action
                CountDownTimer.__init__(self, seconds)
        def run(self):
                CountDownTimer.run(self)
                self.action(self.args)
 
def myAction(args=[]):
        print ("Performing my action with args:")
        print (args)
 
if __name__ == "__main__":
        t = CountDownExec(3, myAction, ["hello", "world"])
        t.start()
        print("2333")
로그인 후 복사

Sched 모듈 사용법:

'''
使用sched模块实现的timer,sched模块不是循环的,一次调度被执行后就Over了,如果想再执行,
可以使用while循环的方式不停的调用该方法
'''
import time, sched
#被调度触发的函数
def event_func(msg):
    print("Current Time:", time.strftime("%y-%m-%d %H:%M:%S"), 'msg:', msg)
def run_function():
    #初始化sched模块的scheduler类
    s = sched.scheduler(time.time, time.sleep)
    #设置一个调度,因为time.sleep()的时间是一秒,所以timer的间隔时间就是sleep的时间,加上enter的第一个参数
    s.enter(0, 2, event_func, ("Timer event.",))
    s.run()
def timer1():
    while True:
        #sched模块不是循环的,一次调度被执行后就Over了,如果想再执行,可以使用while循环的方式不停的调用该方法
        time.sleep(1)
        run_function()
if __name__ == "__main__":
    timer1()
로그인 후 복사

위 내용은 Python3을 통해 작업의 타임 루프 실행 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

시간 패키지의 단조로운 시계 처리 시간 패키지의 단조로운 시계 처리 Aug 04, 2023 pm 05:45 PM

오늘은 golang time 패키지의 시간 적용 방법을 주로 살펴보겠습니다. 둘 사이의 일반적인 규칙은 "벽 시간"이 시간을 알려주는 데 사용되고 "단조 시계"가 시간을 측정하는 데 사용된다는 것입니다. 다른 시계 처리 방법이 있습니다.

Java8 시간 API 사용 방법 Java8 시간 API 사용 방법 Apr 28, 2023 pm 12:25 PM

1. 개요 이 기사의 일부로 기존 Date 및 CalendarAPI의 몇 가지 문제부터 시작하여 새로운 Java8Date 및 TimeAPI가 이러한 문제를 어떻게 해결하는지 살펴보겠습니다. 또한 LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Period, Duration 및 해당 API와 같은 Java8 시간 클래스 라이브러리의 핵심 클래스를 살펴보겠습니다. 2. 이전 API(Java 8 이전)의 스레드 안전성 문제 - 날짜 및 달력 클래스는 스레드로부터 안전하지 않으므로 개발자가 이러한 API의 동시성 문제를 디버그하기 어렵고 이를 처리하기 위해 추가 코드를 작성해야 합니다. .

파이썬에서 시간과 날짜/시간의 차이점과 사용법은 무엇입니까 파이썬에서 시간과 날짜/시간의 차이점과 사용법은 무엇입니까 May 02, 2023 am 11:01 AM

1. Python에서 시간을 표현하는 두 가지 방법: 타임스탬프: 1970.1.100:00:00을 기준으로 한 초 단위 오프셋, 고유 시간 튜플 struct_time: 총 9개 요소>tm_year: 1-12년> tm_mon: 1-12월> tm_mday: 일 1-31>tm_hour: 시 0-23>tm_min: 분 0-59>tm_sec: 초 0-59>tm_wday: 주 0-6(0은 일요일을 의미)>tm_day: 일 1-366> tm_isdst: 일광 절약 시간인지 여부, 기본값은 -1.ti입니다.

Python 시간 모듈에서 시간을 얻고 변환하는 방법 Python 시간 모듈에서 시간을 얻고 변환하는 방법 May 13, 2023 pm 12:19 PM

Pythontime 모듈 시간 획득 및 변환 Python의 Time 라이브러리는 현재 날짜 및 시간에 액세스하고, 시간을 다른 형식으로 출력하고, 지정된 시간을 기다리는 등 시간 관련 처리를 수행할 수 있습니다. 1. 시간 가져오기 1.1. 타임스탬프 importtimetimestamp=time.time()#1682737552.5009851 그리니치 표준시(GMT) 1970년 1월 1일 00:00:00부터 현재까지의 총 시간 1.2. 현지시간()#time.struct_time(tm_year=2

스레딩 모듈을 사용하여 Python 3.x에서 스레드를 생성하고 관리하는 방법 스레딩 모듈을 사용하여 Python 3.x에서 스레드를 생성하고 관리하는 방법 Aug 04, 2023 am 10:37 AM

Python 3.x에서 스레드를 생성하고 관리하기 위해 스레딩 모듈을 사용하는 방법 소개: 컴퓨터의 강력한 성능으로 인해 멀티스레딩은 병렬 처리의 일반적인 방법이 되었습니다. Python의 표준 라이브러리에는 스레딩이라는 편리한 모듈이 있습니다. 이 기사에서는 Python3.x의 스레딩 모듈을 사용하여 스레드를 생성 및 관리하고 코드 예제를 사용하여 설명하는 방법을 소개합니다. 1. 쓰레드란 무엇인가? 스레드는 단일 프로세스 내에서 실행되는 독립적인 프로세스입니다.

Python3에 pip를 설치하는 방법 Python3에 pip를 설치하는 방법 Dec 20, 2023 pm 05:42 PM

설치 단계: 1. Python3이 설치되어 있고 명령줄을 통해 액세스할 수 있는지 확인합니다. 2. 터미널을 열고 "python3 -m verifypip --upgrade" 명령을 입력하여 pip 설치 패키지를 다운로드합니다. 4. 다운로드한 pip 설치 패키지를 디렉터리에 추출합니다. 5. 터미널을 열고 압축이 풀린 pip 디렉터리로 이동합니다. 6. "python3 setup.py install" 명령을 실행하여 pip를 설치합니다.

현재 UNIX 타임스탬프를 반환하려면 PHP 함수 'time'을 사용하세요. 현재 UNIX 타임스탬프를 반환하려면 PHP 함수 'time'을 사용하세요. Jul 25, 2023 pm 04:42 PM

현재 UNIX 타임스탬프를 반환하려면 PHP 함수 "time"을 사용하십시오. UNIX 타임스탬프는 1970년 1월 1일 0:00:00(UTC) 이후의 총 초 수를 나타냅니다. PHP에서는 내장 함수 "time"을 사용하여 현재 UNIX 타임스탬프를 가져올 수 있습니다. 이 문서에서는 이 함수를 사용하는 방법을 설명하고 해당 코드 예제를 제공합니다. 코드 예: <?php$timestamp=time();echo" 현재

Java API 개발에서 스레드 관리를 위해 스레딩 사용 Java API 개발에서 스레드 관리를 위해 스레딩 사용 Jun 18, 2023 am 08:55 AM

Java는 애플리케이션을 빠르게 개발하는 데 도움이 되는 풍부한 API 라이브러리를 갖춘 강력한 프로그래밍 언어입니다. JavaAPI 개발에서는 스레드 관리를 위해 스레딩을 사용하는 것이 불가피합니다. 스레드 관리는 Java 애플리케이션의 핵심 문제이기 때문입니다. 이 기사에서는 스레드 관리를 위해 스레딩을 사용하는 방법을 소개합니다. 1. JavaAPI의 스레딩이란 무엇입니까? 먼저 스레딩이 무엇인지 이해하세요. 자바에서

See all articles