duduklein duduklein - 2 months ago 21
Python Question

APScheduler not starting?

I would like to run a python script during the night and so I was thinking of using APScheduler. I'll start running it at 1am of the following night and it will run once every night

my scheduler script looks like this (scheduler.py):

from apscheduler.scheduler import Scheduler
from datetime import datetime, timedelta, time, date

def myScript():
print "ok"

if __name__ == '__main__':
sched = Scheduler()
startDate = datetime.combine(date.today() + timedelta(days=1),time(1))
sched.start()
sched.add_interval_job(myScript, start_date = startDate, days=1)


In the shell, I do:
python myScheduler.py & disown
(I'm running it remotely, so I want to run it in the background and disown it.
Immediately, a number (PID) appears below the line, as every other python script would do. But when I do ps -e | grep python, that number is not there. I tried to do
kill -9 PID
and I got a message saying that the job does not exist.

Is the scheduler running? If yes, how can I stop it? if not, what am I doing wrong?

Answer

you have to keep the script running otherwise after the sched.add_interval_job(myScript, start_date = startDate, days=1), the script ends and stop. add a

import time

while True:
    time.sleep(10)
sched.shutdown()

after, and then, the scheduler will still be alive.