Допустим, у меня есть скрипт python, подобный этому:
from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
sched = BackgroundScheduler()
def SchedulerTest():
file1 = open("C:/Stuff/Stuff2/SchedTest.txt","a")
L = [str(datetime.now()) + ' | Testing this scheduler.' + '\n']
print(L)
file1.writelines(L)
file1.close()
sched.add_job(SchedulerTest, 'interval', seconds=15, start_date="2020-04-24 07:30:00", end_date="2021-01-01 10:59:00", id='id_SchedulerTest')
sched.start()
, сохраненный в файле с именем SchedTest.py в этом каталоге: C: \ Stuff \ Stuff2 \ вместе с пустым текстом файл с именем SchedTest.txt
Процесс работает, как и ожидалось, в моей записной книжке Jupyter, при условии, что я активно загружаю записную книжку.
Как запустить процесс и поддерживать его на моем компьютере? Windows P C без запуска сценария через мою записную книжку Jupyter, загруженную с помощью Anaconda Navigator?
Приведенное ниже описание кажется неудачным, о чем свидетельствует пустой файл SchedTest.txt, хотя ни для одного из них не появилось сообщений об ошибках :
1. Создайте файл с именем SchedTest_start.cmd со следующим содержимым, затем дважды щелкните его:
echo "Starting my Scheduler Task"
call "C:\ProgramData\Anaconda3\python.exe" "C:\Stuff\Stuff2\SchedTest.py"
pause
2. Откройте cmd и введите python C: \ Stuff \ Stuff2 \ SchedTest.py
3. Откройте cmd и наберите pythonw C: \ Stuff \ Stuff2 \ SchedTest.py
4. Откройте cmd и введите conda: C: \ Stuff \ Stuff2 \ SchedTest.py
ОБНОВЛЕНИЕ ------------------------- -------------------------------------------------- ---
Объединение решения @Chiheb Nexus плюс комментарий @Alex Grönholm сработал:
1. Измените сценарий, чтобы использовать планировщик блокировки вместо фонового
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def SchedulerTest():
file1 = open("C:/Stuff/Stuff2/bl/SchedTest.txt","a")
L = [str(datetime.now()) + ' | Testing this scheduler.' + '\n']
print(L)
file1.writelines(L)
file1.close()
sched.add_job(SchedulerTest, 'interval', seconds=15, start_date="2020-04-24 07:30:00", end_date="2021-01-01 10:59:00", id='id_SchedulerTest')
sched.start()
2. Создайте файл с именем SchedTest_start.cmd со следующим содержимым, затем дважды -
click it:<br>
echo "Starting my Scheduler Task"
call "C:\ProgramData\Anaconda3\python.exe" "C:\Stuff\Stuff2\SchedTest.py"
pause