Мне нужно задание цикла или расписания с колбой в одном скрипте или создать связь между скриптом колбы и скриптом цикла - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу создать приложение для орошения на Raspberry Pi, но у меня есть проблемы с тем, как установить связь между циклом или расписанием задачи

я пытаюсь использовать что-то вроде этого

import schedule
import time
import datetime
import uuid

from flask import Flask, request
from multiprocessing import Process

app = Flask(__name__)
t = None
job_timer = None

def run_job(id):
    """ sample job with parameter """
    global job_timer
    print("timer job id={}".format(id))
    print("timer: {:.4f}sec".format(time.time() - job_timer))
    job_timer = time.time()

def run_schedule():
    """ infinite loop for schedule """
    global job_timer
    job_timer = time.time()
    while 1:
        schedule.run_pending()
        time.sleep(1)

@app.route('/timer/<string:status>')
def mytimer(status, nsec=10):
    global t, job_timer
    if status=='on' and not t:
        schedule.every(nsec).seconds.do(run_job, str(uuid.uuid4()))
        t = Process(target=run_schedule)
        t.start()
        return "timer on with interval:{}sec\n".format(nsec)
    elif status=='off' and t:
        if t:
            t.terminate()
            t = None
            schedule.clear()
        return "timer off\n"
    return "timer status not changed\n"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

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

Я думаю, что лучший способ сделать отдельный скрипт с флягой и петлей, но я не знаю, как сделать связь между скриптом?

Если возможно предоставить пример связи между двумя скриптами, я бы хотел.

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