Планирование задания cron в python для запуска сценария python каждый раз через 1 и 31 минуту через APSCHEDULER - PullRequest
0 голосов
/ 07 февраля 2020

Мне нужно запускать задание cron планировщика AP каждую 1-ю и 31-ю минуты. Например, если он работает в 10.01 и должен снова работать в 10.32, то он должен работать снова в 11.03 и 11.34 и повторяться для всех дней, кроме субботы и воскресенья. Я попробовал это, и это не работает

Как мне это сделать

sched.jobs(jobs,'cron',day_of_week='mon-fri', hour=*, minute=*\31*)

1 Ответ

1 голос
/ 07 февраля 2020

Выше недопустимо Python, и, вероятно, не будет работать.

  • * без кавычек интерпретируется как оператор умножения, но находится в недопустимом месте.
  • Кроме того, выражение cron */31 * * * Mon-Fri означает запуск в минутах, кратных 31 Вы хотите, чтобы выражение cron было 1,31 * * * 1-5
  • Я не верю, что есть функция jobs.

Сначала вам нужно определить функцию, которую нужно вызвать (I я не уверен, является ли jobs в вашем выражении единственной функцией или набором функций, но это должна быть только одна функция):

def job():
    print("job starting")
    call(['touch', 'emptyfile'])

Затем добавьте его, используя add_job (не jobs )

// create scheduler using a subclass of BaseScheduler
scheduler = BackgroundScheduler()
scheduler.configure(timezone='utc')

// cron would look like 1,31 * * * 1-5
scheduler.add_job(job, 'cron', day_of_week='1-5', hour='*', minute='1,31')
scheduler.start()

Можно сослаться на https://crontab.guru/ и https://apscheduler.readthedocs.io/en/stable/userguide.html

...