实现指定时间段运行程序及关闭程序

2023-11-10

场景:程序需要在每天某一时间段内运行,然后在某一时间段内停止该程序。

from datetime import datetime, time
import multiprocessing
from time import sleep

# 程序运行时间在白天8:30 到 15:30  晚上20:30 到 凌晨 2:30
DAY_START = time(8, 30)
DAY_END = time(15, 30)

NIGHT_START = time(20, 30)
NIGHT_END = time(2, 30)


def run_child():
    while 1:
        print("正在运行子进程")


def run_parent():
    print("启动父进程")

    child_process = None  # 是否存在子进程

    while True:
        current_time = datetime.now().time()
        running = False  # 子进程是否可运行

        if DAY_START <= current_time <= DAY_END or (current_time >= NIGHT_START) or (current_time <= NIGHT_END):
            # 判断时候在可运行时间内
            running = True

        # 在时间段内则开启子进程
        if running and child_process is None:
            print("启动子进程")
            child_process = multiprocessing.Process(target=run_child)
            child_process.start()
            print("子进程启动成功")

        # 非记录时间则退出子进程
        if not running and child_process is not None:
            print("关闭子进程")
            child_process.terminate()
            child_process.join()
            child_process = None
            print("子进程关闭成功")

        sleep(5)


if __name__ == '__main__':
    run_parent()


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现指定时间段运行程序及关闭程序 的相关文章

随机推荐

  • 利用arp欺骗获取局域网目标浏览的图片

    之前的实验中实现了arp断网攻击 这是arp欺骗错误配置下产生的现象 所谓arp欺骗 就是在断网攻击的前提下 让流量转发出去 原理 使目标主机认为攻击者的网卡是网关 从而将数据包都发给攻击者的网卡 攻击者的网卡再开启转发 将数据包传到真正网
  • 毕业设计 单片机选题100例(五)

    单片机毕业设计项目分享系列 这里是DD学长 单片机毕业设计及享100例系列的第一篇 目的是分享高质量的毕设作品给大家 包含全面内容 源码 原理图 PCB 实物演示 论文 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的单片机项目缺少
  • 数据结构之优先级队列(堆)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 二叉树的顺序存储 1 存储方式 2 下标关系 二 堆 概念 创建大根堆 三 堆的应用及相关操作 入队列 出队列 得到队头元素 四 Java中的优先级队列 细节问
  • Shell编程:函数的简单应用

    Shell编程是一种在Unix或类Unix系统上进行脚本编程的方法 脚本是一系列命令的集合 用于自动化执行特定任务 在Shell脚本中 函数是一种组织和重用代码的重要方式 函数允许将一段代码片段封装起来 并在需要时进行调用 本文将介绍She
  • MySQL参数sql-mode配置

    一 问题描述 采用Navicat连接mysql 在执行SQL时报错 Err 1055 Expression 1 of ORDER BY clause is not in GROUP BY clause and contains nonagg
  • 贡献30本经典Linux学习和开发教程和资料,都是pdf完整版的

    贡献30本经典Linux学习和开发教程和资料 都是pdf完整版的 字号 订阅 完全免费下载 无需注册也无需积分 pdf版经典Linux学习教程资料列表 电子书 下载链接 单个资源下载 101 深入理解Linux内核 第三版 英文版 1030
  • pandas(一):read_csv解决第一列Unnamed问题

    先直接给答案 configdata pd read csv savepath encoding utf 8 index col 0 然后我们展开来说明 首先下面这个图片是原始csv数据 1 第一列问题 上述图片可以看到 因为csv文件自带第
  • 面试经典(22)---字符串组合

    题目 输入一个字符串 输出该字符串中字符的所有组合 举个例子 如果输入abc 它的组合有a b c ab ac bc abc 假设我们想在长度为n的字符串中求m个字符的组合 我们先从头扫描字符串的第一个字符 针对第一个字符 我们有两种选择
  • RenderCore模块抄写记录(ue5.2)

    共151个文件 47800行 截至2023年9月10日 剩余个文件 行
  • 冒泡排序、插入排序、选择排序的时间、空间复杂度以及优化方案

    文章目录 冒泡排序 插入排序 选择排序 冒泡排序 冒泡排序 Bubble Sort 是一种计算机科学领域的较简单的排序算法 需求 4 5 6 3 2 1 排序后 1 2 3 4 5 6 排序原理 比较相邻的元素 如果前一个元素比后一个元素大
  • Lock wait timeout exceeded解决方案

    Err 1205 Lock wait timeout exceeded try restarting transaction 基本原因 后提交的事务等待前面处理的事务释放锁 但是在等待的时候超过了mysql的锁等待时间 就会引发这个异常 1
  • 用latex写IEEE论文投稿的踩坑笔记

    目录 预备 安装TeXstudio 一 下载IEEE的LaTeX模板 二 修改引文方式 1 更新IEEEtran bst文件 2 新建一个 txt文件 把bib格式的引文信息全都复制进去 方法如下 保存后把文件后缀名改为 bib 3 改一下
  • NUC980开源项目15-编译默认配置uboot

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • 初始数据结构(c语言版本)

    目录 基本概念和专业术语 数据结构概念 数据结构的结构类型 1 逻辑结构 1 集合结构 2 线性结构 3 树结构 4 图结构或网状结构 2 存储结构 1 顺序储存结构 2 链式储存结构 数据类型和抽象数据类型 抽象数据类型的表示与实现 算法
  • SDWebImage 官方文档 翻译(v3.7.5 中文 简介,非API文档 )

    最近正在自学iOS 看到网上有项目用SDWebImage 便找来文档看看 顺便记录一下 也方便大家阅读 官方文档地址 http cocoadocs org docsets SDWebImage 3 7 5 以下是翻译内容 Web Image
  • 正点原子的u-boot使用实验报错:arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv5

    交叉编译工具链安装的时候 我安装左神用的gcc linaro 4 9 4 2017 01 x86 64 arm linux gnueabihf安装包安装不了 之后我就装了另外一个版本的 当然在裸机开发阶段使用的时候都没有什么问题 但是在ub
  • mysql8.0.19提示密码错误和修改密码。(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwo)

    场景 最近安装了mysql8 0 19 安装的时候mysql会初始化一个密码 但是我按照初始化密码输进去后一直报 ERROR 1045 28000 Access denied for user root localhost using pa
  • C#中的Conditional特性

    Conditional特性 这种特性允许我们包括或者取消特定方法的所有调用 为方法声明应用Conditional特性并把编译符作为参数来说使用 定义方法的CIL代码本身总是会包含在程序集中 只是调用部分的代码会被插入或忽略 根据宏是否被定义
  • 认识最大熵模型

    信息熵 设 X X X是取有限个值的随机变量 X x
  • 实现指定时间段运行程序及关闭程序

    场景 程序需要在每天某一时间段内运行 然后在某一时间段内停止该程序 from datetime import datetime time import multiprocessing from time import sleep 程序运行时