Python脚本完成,但Windows任务计划程序显示正在运行

时间:2015-05-22 19:09:21

标签: python windows python-2.7 scheduled-tasks

我写了一个小脚本来清除传输中停止的种子。该脚本会写一个日志,它是否在传输中工作,然后退出。下面的脚本:

#Module Imports#
import transmissionrpc
import os
import logging
import sys
import datetime

#Set variables before main() function
logdir = 'D:\\scripts\\logs'
myDate = datetime.datetime.now().strftime("%y-%m-%d")
myTime = datetime.datetime.now().strftime("%H:%M")
myDateTime = datetime.datetime.now().strftime("%y-%m-%d %H:%M")

if not os.path.exists(logdir):
    os.makedirs(logdir)

logger = logging.getLogger('transmissionrpc')
logdate = datetime.datetime.now().strftime("%y-%m-%d %H%M")
logfile = logdir + "\\CTS-" + logdate + '.log'
hdlr = logging.FileHandler(logfile)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
logger.info("Begin Transmission clean")

tc = transmissionrpc.Client('localhost', port = 9091, user = 'USER', password = 'PASS')
for t in tc.get_torrents():
    if t.status == 'stopped':
        tc.remove_torrent(t.id, delete_data = True)
        print ('Removing Torrent %s - %s' % (t.id, t.name))
        logger.info('Removing Torrent %s - %s' % (t.id, t.name))

logger.info("No more stopped torrents. Exiting")
sys.exit()

在任务计划程序中以pythonw D:\Path\to\script.py

运行脚本

如何让Task Scheduler正确显示脚本已经结束?

1 个答案:

答案 0 :(得分:0)

将这些行添加到您的代码中:

import os
print(os.getpid())

将其打印的数字与任务计划程序中的进程ID进行比较。如果您没有看到匹配项,那么您的脚本必须在另一个进程中运行。