2017-09-11 1 views
0

나는 Sched (Windows 사용자 임) 등의 Python에서 다른 일정을 찾고 있습니다. 그러나 실제로 그립을 얻을 수는 없지만 잘 모릅니다. 만약에 가능하다면. 내 계획은 아래 그림처럼 만드는 것입니다 :일정한 시간에 일정 잡기 - Python

My own UML

우리는 시간에 볼 수 있습니다

: 00.21는 등등 나는 프로그램이 기능이 작업을 수행 할 시간을하지만 기능 (1) 목록 I에 추가해야 타이머가 치기 전에 2 분 안에 작동하므로 목록에서 최대한 많이 만들었습니다. 기본적으로 ...

기능 1은 타이머 2 분 전에 기능을 수행합니다. 00:21에 도달하면 함수 1을 중지하고 함수 2를 수행하고 List를 가져 와서 자체 함수에서 사용하고 완료하면 함수를 수행합니다.

그러나이 작업을 시작하거나 시작하는 방법을 모르겠습니다. 나는 자신의 타이머를 생각하고 있었지만 그것이 해결책이 아닌 것처럼 느낀다. 너희들은 뭐라고 제안하니?

답변

0

서브 클래스가 서브 클래스 인 서브 클래스 threading.Thread을 작성하면 이런 문제가 발생한다고 생각합니다. 거기에서 수행 할 기능으로 run 메소드를 겹쳐 쓰면이 경우 목록에 항목이 추가됩니다. 그런 다음 main에서 해당 스레드를 시작한 후 sleep을 호출합니다. 클래스는 다음과 같이 보일 것이다 :

class ListBuilder(threading.Thread): 
    def__init__(self): 
     super().__init__() 
     self._finished = False 

     self.lst = [] 

    def get_data(): 
     # This is the data retrieval function 
     # It could be imported in, defined outside the class, or made static. 

    def run(self): 
     while not self._finished: 
      self.lst.append(self.get_data()) 

    def stop(self): 
     self._finished = True 

귀하의 main 다음 보일 것이다 뭔가 지금

import time 

if __name__ == '__main__': 
    lb = ListBuilder() 
    lb.start() 

    time.sleep(120) # sleep for 120 seconds, 2 minutes 

    lb.stop() 
    time.sleep(.1) # A time buffer to make sure the final while loop finishes 
        # Depending on how long each while loop iteration takes, 
        # it may not be necessary or it may need to be longer 

    do_stuf(lb.lst) # performs actions on the resulting list 

처럼, 당신이 할 일은 0시 19분하고 그것을 실행하려면 Windows 작업 스케줄러를 사용하다 설정해야합니다.

+0

대단히 감사합니다! 이것은 내가 찾고 있었던 대답이었다! :) – Andres123

관련 문제