Запуск сценария python в учетной записи службы с помощью планировщика задач windows - PullRequest
0 голосов
/ 30 апреля 2020

ПРИМЕЧАНИЕ 1. Все файлы выполняются с использованием cmd в моем профиле и получают правильные результаты. Но не с планировщиком задач windows.

**> ПРИМЕЧАНИЕ 2. Наконец-то я получил вывод, что glob.glob и os.listdir не

работают в планировщике задач windows в моем скрипте python, в котором я устанавливаю соединение с удаленным сервером, но это работает на моем локальном компьютере с использованием cmd и pycharm. ** **

print("before for loop::", os.path.join(file_path, '*')) 
print(glob.glob( os.path.join(file_path, '*') ))
for filename in glob.glob( os.path.join(file_path, '*') ):
print("after for loop")

** При запуске выше .py сценария я получил: before for loop:: c:\users\path\dir\* При выполнении print(glob.glob( os.path.join(file_path, '*') )) предоставление "[]" и не может найти причину?

Я перешел по этой ссылке StackOverflow для настройки Windows Планировщик для python, сославшись на комментарий MagTun: Планирование файла .py в Задаче Планировщик в Windows 10

  1. В настоящее время у меня есть scheduler.py , который вызывает еще 4 файла .py.

  2. Когда я пытаюсь запустить Scheduler.py из Windows Задача SCHEDULER,

Он запускается Scheduler.py, а затем через 1 минуту он запускает все остальные 4 .py файла и завершает работу в течение секунд. Не выдавая никакого вывода в поиске elasti c.

Я использовал это для сценария cmd:

 @echo off
cmd /k "cd /d D:\folder\env\Scripts\ & activate &  cd /d D:\folder\files & python scheduler.py" >> open.log

timeout /t 15

В этой вышеупомянутой команде cmd ничего не сохраняется в открытом состоянии. ведение журнала при работе с windows планировщиком задач.

Сценарий с несколькими планировщиками подпроцессов .py выглядит следующим образом:

from apscheduler.schedulers.blocking import BlockingScheduler
import datetime
from subprocess import call
from datetime import datetime
import os
from apscheduler.schedulers.blocking import BlockingScheduler

def a():
    call(['python', r'C:\Users\a.py'])

def b():
    call(['python', r'C:\Users\b.py'])

def c():
    call(['python', r'C:\Users\c.py'])

def d():
    call(['python', r'C:\Users\d.py'])

if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(a, 'interval', minutes=1)
    scheduler.add_job(b, 'interval', minutes=2)
    scheduler.add_job(c, 'interval', minutes=1)
    scheduler.add_job(d, 'interval', minutes=2)
    print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
    try:
        scheduler.start()
        print("$$$$$$$$$$$$$$$$$$")
    except (KeyboardInterrupt, SystemExit):
        print("****#####")
        pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...