表弟说,这个Python定时任务,能挣五千,问我信吗?

Python定时执行任务 在工作中有时会遇到领导安排的深夜定时执行批量采集数据、关闭程序、打开设备等情况,以下将用Python解决这个问题。 运行程序手动输入任务执行的时间,系统将7×24小时循环执行设定的任务。 没有资源分也可移步至个人博客获取,地址:www.mapleleaf.ren 立即下载

一个简单的需求,即定时启动python脚本,这种需求很常见,比如定时启动一段程序对服务器状态进行收集,写到文件中,方便运维后期审计,查看服务器占用高峰时间段,从而判断出公司产品在该时间段较多人使用,或定时清除其他程序的日志,释放线上服务器的空间,这块常见的架构是有个转存程序,将日志通过nginx文件服务挂起,然后该程序请求这种文件,将其存储在数据服务器中,而线上服务器的日志就不需要了(游戏日志通常比较大,所以转存程序也需要设计一下)。

本章主要来实现一下定时启动python的需求,当然,定时启动其他任何程序也都一样。

Python threading模块

一开始,为了省事,直接使用python的threading模块,threading模块下有个Timer模块,它可以实现定时启动python程序的需求,用法如下:

在这里插入图片描述

值得一提的是,timer需要使用global timer,据说尝试运行时,会释放无需使用的占用资源。

实现方法很简单,即创建Timer()实例,传入两个参数,分别是时间间隔(单位为秒)与定时任务本身,构成一个死递归(因为没有逃出条件),然后就是调用Timer实例的start()方法。

不推荐,虽然网上博客说使用global timer会释放无用资源,但实际没有考证,这种写法在服务器上跑起来的程序通常一天就断,我周日启动该程序,周一来公司看,对应的python程序挂了。

APScheduler

APScheduler是Python用于执行定时操作的第三方框架,作为一个框架,它就有它对应的各种概念,没必要搞那么复杂,学习成本有点高,放弃

Linux crontab

最总还是转到了Linux的crontab服务,该服务主要就是用于实现定时任务的,其语法如下:

# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR
#sun,mon,tue,wed,thu,fri,sat 
# | | | | |
# * * * * * command to be executed
  • minute:代表一小时内的第几分,范围 0-59。
  • hour:代表一天中的第几小时,范围 0-23。
  • mday:代表一个月中的第几天,范围 1-31。
  • month:代表一年中第几个月,范围 1-12。
  • wday:代表星期几,范围 0-7 (0及7都是星期天)。
  • who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
  • command:所要执行的指令。

crontab服务状态

sudo service crond start 
#启动服务
sudo service crond stop 
#关闭服务
sudo service crond restart 
#重启服务
sudo service crond reload 
#重新载入配置
sudo service crond status 
#查看服务状态

查看定时任务

crontab

l

到这里,关于crontab常见的文件就是叫你使用 crontab-e来编写对应crontab配置文件,配置内容的语法如上,例子如下:

在这里插入图片描述
但这边不会这样操作,这种写法并不适合于真正的工作中,就是一个Toy,我希望的是全自动化,这里通过shell脚本来实现自动添加crontab任务。

shell脚本代码如下:

在这里插入图片描述
这是我使用的完整shell脚本,这里自动添加crontab任务的命令只有一行,就是 echo"* * * * * ${work_path}start.sh start >> ${work_path}logs/cron.log 2>&1">>/var/spool/cron/root,这个命令会每分钟都会调用start.sh脚本,而start.sh脚本中启动了python,几个坑需要注意,crontab中请使用绝对路径,因为crontab启动程序时,相对路径所对应的坐标系其实与你手动启动该脚本时是不同的,使用绝对路径省事,这里还将star.sh脚本的输出内容都重定向到对应的日志文件中。

为什么不直接通过crontab启动python程序呢?而是要再绕一层,通过shell脚本来启动,这其实也是一个坑,除非你是单python文件,不然通常都使用shell脚本的形式启动python,而不在直接使用crontab来启动,这同样是因为crontab启动的任务相对路径的坐标系改变了,多文件的python项目相互引入文件时,使用的坐标系与crontab启动时不同,导致crontab直接启动python项目会失败,所以技巧就在于**,通过shell脚本来启动python程序,在启动前,通过cd命令进入python项目对应的目录,这样就将启动时的相对路径的坐标系改成与python的一致了**

具体可以看一下我的start.sh脚本,代码如下:

在这里插入图片描述
通过python启动任务的关键命令在于

在这里插入图片描述
首先会进入要启动python项目的所在目录,然后再通过python启动对应的py文件,这里使用python解释器同样要使用全路径,因为线上系统中存在多个python,因为该python程序是耗时程序,所以我希望它在后台运行,所以使用了 nohup与 &关键字,将其放在后台去运行。

题外话:

centos系统中的yum是依赖python的,具体到centos6,其yum依赖系统本身就存在的python2.6,但开发环境通常要使用python2.7,此时最好不要删除系统中自带的python2.6,如果你直接删除,会导致yum使用不了,此时就需要修改一下yum对应文件中的python指向,最好的方法就是直接安装python2.7,然后在/usr/bin下创建对应的软连接来使用。

小结

python程序员在工作中其实不能只会python,因为python虽然强大,但也会有其缺陷,所以什么好用,用什么才是对的,还有python是一种语言,不要被语言局限。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


职业发展

作为一个代码打工仔,对于绝大部分程序员来说,想要成为牛逼的真正挣钱程序员的路还很长,一刻都不能懈怠。

我们无法从HR角度,或者技术leader的角度来臆测哪种状态的面试更能获取面试官青睐。但通过我们积攒的大量的面试经验,大家多少可以推断一些成为有竞争力的程序员的一些必要条件。

大佬云集、资料丰富

当初我在字节认识一个非常非常资深的前辈,他到字节比我早三年,但因为各种原因级别不是很高。我当时问他,既然你对现状如此不满,为什么不想着离开寻找更好的机会呢?

他沉思了片刻跟我说,他说我现在在这里虽然待着不顺心,但是我接触到的人都是非常优秀的。我遇到问题,还可以和你们讨论讨论。我如果出去了,我要是再遇到问题,可能连一个讨论的人都没有。

我当时听听只是觉得有道理,现在再回想起来,感受非常深刻。三观、格局、能力,能够进入大公司的,这三个方面一般都不会太差。别的不说,就拿个人能力而言,我曾出国出差过几个月,有幸见识了许多各种海外名校的同事,和他们学习交流人工智能,这真的让我AI有了更深层次的认识。

除了优秀的同事之外,大公司里往往还有丰富的内部文档和资料。我当时在字节内部看到了很多优秀的文章,也有很多优秀的技术沙龙和分享。现在想起来两年下来,也没有去过几次,文章和资料看得也不算多,现在想想颇为遗憾。别的不说,就拿推荐领域而言,近些年质量不错的论文往往都来源于大公司尤其是国内的大公司,以腾讯、华为和头条为主。除了公开的论文,公司内部还有很多技术相关的资料和文档,这些真的可以说是有价无市,非常珍贵。

文中所展示的资料全部都是免费分享,扫一扫下方优快云官方认证微信二维码即可【保证100%免费】

Python 知识手册

Linux 知识手册

爬虫查询手册

而且,这些资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:

数据分析知识手册:

机器学习知识手册:

金融量化知识手册:

岗位内推、学习交流

我们大量需要前端岗位、python岗位、Java 岗位、Android 和 iOS 的开发岗位,工作地点:北京字节,欢迎校招社招扫描下方二维码找我内推

如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的优快云官方技术圈一起学习交流吧!

python每天定时执行一次任务 使用Python的timer来完成每天执行一次的定时任务,环境是windows,python3.4 立即下载

相关推荐

INMP441麦克风与ESP32的I2S音频采集实战指南

本文提供了INMP441数字麦克风与ESP32开发板通过I2S接口进行高质量音频采集的完整实战指南。详细讲解了硬件连接、软件配置、数据读取及基础处理,并分享了常见的避坑技巧与性能优化建议,帮助开发者快速构建物联网音频应用。

weixin_28396629的博客 598

python中的schedule模块定时执行任务

schedule模块支持python2.7、3.5、3.6,是一个轻量级的定时任务调度的库,可以实现每分钟、每小时、每天(可具体到哪个时间点)、周几等,在特定的时间定时执行任务。 linux环境下安装(windows下没有测试): sudo pip install schedule 使用方法: import schedule import time def job1(): ...

weixin_41501074的博客 2886

【windows】【系统还原】亦是美kms执行一键关闭defender 之后,windows defender 被卸载了,无论如何都打不开

还是执行 都没有明显效果 那么,我最后是怎么解决得呢? 一、打开控制面板(任务栏搜索kzmb)

weixin_41899098的博客 6908

Python 实现定时任务的九种方案

定时任务是编程中常见的需求,它可以按照预定的时间表执行特定的任务或操作。在Python中,有多种方法可以实现定时任务。本文将介绍九种常见的Python定时任务解决方案,包括使用标准库、第三方库和操作系统工具。

m0_48891301的博客 1897

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 668

[A-21]ARMv8/v9-SMMU系统架构和功能概述

本文简述了SMMU的系统架构和核心功能

基层架构师的分享 1724

python实现定时任务的8种方式详解

python实现定时任务的8种方式详解

IT之一小佬的博客 4万+

关于对鱼眼相机图片进行畸变校正的两种思路

鱼眼畸变主要表现为径向畸变(Radial Distortion),图像中心正常,边缘向外拉伸。畸变模型通常基于入射角θ\thetaθ(光线与光学轴夹角)和图像半径rrr的关系。等距投影(Equidistant Projection)rdfθrd​fθ,其中rdr_drd​为畸变图像半径,fff为焦距,θ\thetaθ为入射角。等立体角投影(Equisolid Angle Projection)rd2fsin⁡θ2rd​2fsinθ/2。

qq_45670407的博客 1546

Python2.7使用apscheduler定时任务报错AttributeError: ‘datetime.datetime‘ object has no attribute ‘timestamp‘

环境 Python版本:2.7.18 apscheduler版本:3.9.1.post1(直接用pip install apscheduler安装)   发现问题 from apscheduler.schedulers.background import BackgroundScheduler def task(): print 'test' scheduler = BackgroundScheduler() scheduler.add_job(task, 'cron', hour=6, minute=0

Gosick_Geass_Gate的博客 2823

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1049

手把手教你学Simulink实例--基于Simulink的电动汽车无线充电效率优化仿真

​市场规模:2025年全球无线充电市场规模将达$27亿(MarketsandMarkets数据)​技术标准Qi v1.3(最高150W)WiTricity(200W动态功率)ISO 17163(道路车辆无线充电)​节能效果:每kWh充电减少120W损耗(按每天8小时)​成本分析线圈成本:35vs58(传统方案)效率提升带来的续航增加:15km/100km。

xiaoheshang_123的博客 345

Python知识点:如何安全的删除字典中的key

删除Key 假设有一个字典: scores = {'CHINA':100, 'JAPAN':95, 'USA':98, 'INDIAN':88} 要从字典中干掉JAPAN,可以这样写: del scores['JAPAN'] del是一个Python的关键词,可以用在很多地方,用来删除集合中的一个条目。 更健壮的写法 上面的语句,如果字典中本来就没有JAPAN,运行程序就会报错: KeyError: 'JAPAN' 为了让程序更健壮,我们要做一个判断: if 'JAPAN' in scores:

weixin_58753619的博客 8830

【即插即用模块】卷积篇 | TCSVT 2025 | MFACB:多尺度膨胀融合,快速扩大感受野,多尺度特征精准捕捉!

本文提出了一种新型多尺度融合膨胀卷积模块MFACB,用于增强语义分割任务中的特征表达能力。该模块通过三分支串联膨胀卷积结构快速扩大感受野,采用双路径融合机制(基础信息路径+多尺度信息路径)实现高效上下文聚合。相比传统卷积块,MFACB在保持轻量化的同时显著提升了多尺度特征捕捉能力,实验表明其性能优于基础残差块。该模块支持自定义膨胀率和步长调整,可灵活嵌入不同网络阶段,适用于需要特征增强的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 311

一行 Python 代码实现文件共享

有时候,我们想要在局域网内共享一些文件,一般的实现方式是配置共享 目录或者搭建一个文件服务器。但是无论哪种方式都是挺麻烦的。 但是现在不用担心了,今天教你一个快捷简便的方法。只要你电脑装了 python,就可以轻松实现。 共享文件 首先,请确保电脑上安装了 Python ,并且设置了全局变量。 接下来,你需要打开命令行终端,转到你需要共享的文件夹下: 然后敲下我们的一行神命令: python -m http.server 9090 这行代码的意思就是把电脑的文件通过 http 协议共享出去

weixin_58753619的博客 672

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python小知识:用datetime处理日期

用datetime处理日期 说实话,最近有点忙乱,也有点累,几乎想要断更。还是坚持一下吧。 之前我们学习了用time模块可以获取时间: >>> import time >>> time.time() 1641946864.4970088 time模块返回的是从1970年1月1日凌晨到现在的秒数。很多其他编程语言,比如Java返回的是毫秒数。Python是秒数。 如果要处理成具体的日期和时间,需要再经过一些计算。当然这些计算我们不需要自己做了,使用datetime库就可以

m0_59164520的博客 977

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Python处理时间

Python处理时间 处理时间是编程的重要知识,之所以编程就是为了节省时间。接下来几天的3分钟都用来聊Python的时间,time模块,datetime模块,处理时区问题等。 我常用的一个场景是统计一下某个函数的执行时间。这时候我会用time模块。 看代码例子: import time # 记录开始时间 start_time = time.time() # 计算从10000的阶乘 total = 1 for i in range(1, 10000): total = total * i # 记录结束

m0_59235945的博客 2578

Python快速实现分列转到行

大家好,今天来解决一个具体的问题。之前看到Amily的一篇文章,用Excel快速实现分列转到行的操做。 数据源大致是这样的: 数据源已经构造好,咱们开干! import pandas as pd df = pd.read_excel("分列转到行.xlsx",header=None) df.columns = ["年级","姓名"] df 结果如下: 整个代码很简单,不信你看! df["新列"] = df["姓名"].str.split(";") df["新列"] 结果如下: 最后再上一个爆炸函

m0_59235945的博客 755

Python自动开包的几个小应用

自动开包的几个小应用 昨天身体很虚,昏昏沉沉的,下午睡了两小时,晚上又早睡了。还好,今天基本满血复活了,Yeah! 吃早饭的时候,看着刚刚爬上楼顶的圆圆的太阳,让我想起一部电影:太阳照常升起。 如果你生活中遇到了挫折,生病,和家人争吵,分手,升学失败,丢掉工作,应聘失败等等,睡一觉明天都可以重新开始,因为太阳永远照常升起。 今天说下Python自动开包功能和它的几个小应用。 一次性给多个变量赋值 直接看代码: my_list = [1, 2, 3, 4, 5] one, two, three, four,

m0_59164304的博客 169

Python有三元运算法吗?

Python有三元运算法吗? 有!Python的三元运算符是分支语句的变种: 结果1 if condition else 结果2 如果condition条件满足返回结果1,否则返回结果2. 看个实际例子: score = input('输入你的分数') result = 'PASS' if score > 60 else 'FAIL' 有什么用处? 这个写法用普通的if…else也可以完成: score = input('输入你的分数') if score > 60: result

m0_59164304的博客 184

理解了它,就理解了Python的半壁江山,它就是...

sequence 序列 咱们今天来说说sequence。序列是一个有顺序的,可以按位置获取的元素的集合。 它不同于可迭代对象,或者说是可迭代对象的一个分支。因为普通可迭代对象是不能按照位置存取的,下一个元素是什么可能是未知的。 序列的重要性 来看看序列的子孙们就知道序列有多重要的: str - 字符串 list - 列表 tuple - 元组 range - 范围 bytes - 字节序列 bytearray - 字节数组 这些对象,尤其是前面三个,真的可以说是Python基础的半壁江山! 它们都是se

m0_59164304的博客 68

Python小知识:用timeit测试代码性能

用timeit测试代码性能 做性能测试,我们通常会运行同一段代码很多次,然后取平均时间来衡量一个函数或者一段代码的执行效率。 为了达到这个目的,Python有一个很好用的模块,那就是:timeit。 先看一个简单的例子,我们要测试下面这段代码的执行时间: # 生成一个由2的n次方组成的列表 L = [2 ** n for n in range(20)] print(L) 运行结果是: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 819

m0_59164520的博客 475

Python小知识:时区问题

时区问题 昨天晚上吃了火锅,从晚上开始到现在一直拉肚子,感觉很虚。 我一直觉得火锅应该少吃,一是太烫,对口腔不好,二是容易吃坏肚子和容易吃多。 总之,我以后要少吃。这是我个人的感觉,喜欢吃火锅的小伙伴不要被我影响胃口。 今天谈谈时区的问题,现在是北京时间7点多,现在美国东部是晚上6点多,而英国是凌晨0点多。 在开发企业级应用的时候,要正确的处理时区是很常见的需求,也是专业程序员应该掌握的一个知识点。也是时区的问题,昨天开会到晚上11点。 处理时区,推荐用pytz,这也是Python自带的包,可以直接用,我

m0_59164304的博客 2198

Python之常量池

常量池 有下面这段代码: >>> name = '张三' >>> name2 = '张三' >>> name3 = '张三' >>> id(name) 4347189392 >>> id(name2) 4347194288 >>> id(name3) 4348257232 例子中虽然三个变量都是张三,但它们的内存地址是不同的,说明它们不是同一个对象。 非常勤奋好学的**@薛定谔的猫**提出了问题:

weixin_58753619的博客 823
上一篇: 我,本科土木工程,每天5点半起床去工地,决定“提桶跑路”考研,跨考计算机
下一篇: 从中专生到腾讯程序员,深圳男孩实力演绎逆风翻盘
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值