Cron против APscheduler против чего-то еще в течение 2 секунд - PullRequest
0 голосов
/ 30 октября 2019

Мне нужно извлечь данные из последовательного соединения с фиксированным интервалом в 2 секунды с помощью фрагмента кода Python. Программное обеспечение работает на Raspberry Pi 24/7.

Насколько я понимаю, у меня есть три варианта:

  1. Запуск скрипта Python как службы (с помощью systemd)и используйте APscheduler
  2. Используйте задание cron (возможно?)
  3. Используйте другое решение

Каков рекомендуемый способ сделать это?

1 Ответ

0 голосов
/ 30 октября 2019

Вот как вы можете выполнить эту работу в apscheduler

from apscheduler.schedulers.background import BackgroundScheduler


def pull_data():
    print("code comes here")


scheduler = BackgroundScheduler()
scheduler.add_job(pull_data, "interval", seconds=2)

scheduler.start()

apscheduler также поддерживает асинхронный код

from apscheduler.schedulers.asyncio import AsyncIOScheduler


async def pull_data():
    await print("code comes here")


scheduler = AsyncIOScheduler()
scheduler.add_job(pull_data, "interval", seconds=2)

scheduler.start()

Вы также можете выполнить эту работу с облегченной библиотекой Python schedule.

import time
import schedule


def pull_data():
    print("code comes here")


schedule.every(2).seconds.do(pull_data)

while True:
    schedule.run_pending()
    time.sleep(1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...