Как запланировать выход скрипта Python в указанное время - PullRequest
0 голосов
/ 22 ноября 2018

Мне нужно запланировать скрипт на Python, который может выйти и убить его самостоятельно в данный момент времени.Для планирования я использую python schedule, ниже приведен код:

import schedule
from threading import Thread
import time
import sys


def exit_data():
    print("Exiting")
    sys.exit()

def exit_data_thread():
    schedule.every().day.at('13:20').do(exit_data)
    while True:
        schedule.run_pending()
        time.sleep(1)


def main():
    Thread(target=exit_data_thread).start()

    while True:
        time.sleep(1)

main()

Функция exit_data() выполняется в указанное время и печатает Exiting, но не завершается.Он печатает только Exiting, а затем продолжает работать.Я также использовал quit вместо sys.exit().Пожалуйста помоги.Спасибо

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Чтобы закрыть всю программу в потоке, вы можете использовать os._exit().Вызов sys.exit() приведет к выходу только из потока, а не всей программы.

0 голосов
/ 22 ноября 2018

Попробуйте отправить сигнал себе: p

import schedule
from threading import Thread
import time
import sys
import os
import signal


def exit_data():
    print("Exiting")

    # sys.exit()
    os.kill(os.getpid(), signal.SIGTERM)

def exit_data_thread():
    schedule.every(3).seconds.do(exit_data)
    while True:
        schedule.run_pending()
        time.sleep(1)


def main():
    Thread(target=exit_data_thread).start()

    while True:
        time.sleep(1)

main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...