다른 Python 프로그램에서 실행되도록 Python 프로그램을 예약하는 방법은 무엇입니까?

다른 Python 프로그램에서 실행되도록 Python 프로그램을 예약하는 방법은 무엇입니까?

저는 Linux 서버에서 Python 프로그램을 실행하고 있으며 일부 외부 데이터를 기반으로 xx몇 분 또는 몇 시간 후에 다시 실행해야 합니다.

오전 6시에 실행한 다음 오전 7시에 다시 실행해야 한다고 가정해 보겠습니다. 그런 다음 오전 7시에 무언가를 확인하고 15시 45분에 다시 실행해야 하며, 다음 날 오전 2시 5분에, 다음 날 오전 4시 5분에 다시 실행해야 합니다.

보시다시피 실행해야 할 때 미리 정의된 논리가 없으며 실행될 때 정의되어야 합니다.

내가 아는 유일한 작업 예약 메커니즘은 crontab작업을 실행하지 않고 작업을 추가하는 방법을 잘 모르겠습니다 crontab -e. 이 방법이 crontab반복 작업에 더 적합한 것 같습니다. 제 경우에는 crontab작업을 추가하고 다시 삭제합니다. 한 번 후에 새 것을 추가하십시오.

내가 생각할 수 있는 유일한 것은 다음 실행 날짜를 텍스트 파일에 설정하고 작업이 crontab매분마다 프로그램을 실행할 시간인지 확인하도록 하는 것입니다.

답변1

Python-crontab모듈은 유망해 보입니다. 작업을 쉽게 추가하고 제거하세요.

게다가스레드 @stackoverflow좀 더 편리한 아이디어와 링크가 있습니다.

답변2

crontab정기적으로 반복하려는 작업에 사용해야 합니다. 또 다른 옵션은at. 이 유틸리티를 사용하면 나중에 한 번만 실행하려는 작업을 예약할 수 있습니다.

-script 에서 .link 페이지 python에 명령을 추가할 수 있어야 하며 -page는 시작하는 데 충분한 정보를 제공해야 합니다.atman

@Michel의 의견에 따르면 이것은 다음과 같습니다.

newruntime = (datetime.datetime.now() + datetime.timedelta(minutes=5)).strftime("%H:%M %d.%m.%Y")
command = 'echo " python mainprog.py" | at ' + newruntime
os.system(command)

답변3

하다시간.수면()당신을 위한 것이 아닌가요? 내 말은: sleep()을 기다리는 시간(초)을 전달한 다음 스크립트 실행을 다시 시작하도록 할 수 없다는 것입니다(아마도 루프 끝에서 조건부 절전을 수행하여). 다른 제안 중 일부에 필요한 외부 종속성 수가 줄어듭니다.

관련 정보