今天看网络框架时,突然想看一下定时器,于是往上搜索了一下python中timer task的实现,但是由于python本身对线程的支持不是太好,因为全局排它锁的存在,使得多线程在访问资源时效率比较低。下面来提一下网上普遍使用的timer类的thread实现方法。

#-*-coding:utf-8-*-
import threading def doTask():
print 'hello' timer=threading.Timer(1,doTask)
timer.start()

输出结果:

hello

既然是定时任务,为什么不循环执行呢?

因为代码只执行了一遍,怎么可能输出多行!

改一下就OK了:

#-*-coding:utf-8-*-
import threading def doTask():
print 'hello\n' if __name__=='__main__':
while True:
timer=threading.Timer(1,doTask)
timer.start()

不过这是一个死循环。很不好,另一种笨笨方法:

#-*-coding:utf-8-*-
import threading
from time import sleep def doTask():
print 'hello\n'
timer=threading.Timer(1,doTask)
timer.start() timer=threading.Timer(1,doTask)
timer.start()

本人不推荐这么使用定时,下面来介绍一些第三方中的定时任务类:Twisted中的Task.

from twisted.internet import task
import logging
class MyTimeTask(object):
def __init__(self):
self.taskName='task' def myPrint(self):
print self.taskName def onTime(self):
try:
self.myPrint()
except Exception:
logging.error('print fasiled!') def starTask(self):
temp=task.LoopingCall(self.onTime)
temp.start(1, True) instance=MyTimeTask()
instance.starTask()

框架定时任务完毕。谢谢阅读

python中定时任务的更多相关文章

  1. Python中定时任务框架APScheduler

    前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...

  2. Python中定时任务框架APScheduler的快速入门指南

    前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...

  3. 用python设置定时任务

    python中的轻量级定时任务调度库:schedule   提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中.不过,一个小的定时脚本,要用celery的话太 ...

  4. python实现定时任务

    定时任务的实现方式有很多种,如windows服务,借助其他定时器jenkins运行脚本等方式.本文介绍的是python中的一个轻量级模块schedule. 安装 pip命令:pip install s ...

  5. python中的轻量级定时任务调度库:schedule

    提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中.不过,一个小的定时脚本,要用celery的话太“重”了.所以,我找到了一个轻量级的定时任务调度的库:sch ...

  6. 11: python中的轻量级定时任务调度库:schedule

    1.1 schedule 基本使用 1.schedule 介绍 1. 提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中. 2. 不过,一个小的定时脚本,要用 ...

  7. python中的apscheduler模块

    1.简介 apscheduler是python中的任务定时模块,它包含四个组件:触发器(trigger),作业存储(job store),执行器(executor),调度器(scheduler). 2 ...

  8. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  9. python中的Ellipsis

    ...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

随机推荐

  1. python之二分法查找

    二分法查找主要的作用就是查找元素 规则. 掐头结尾取中间, 必须是有序列 # 二分法查找 (需要你明白和掌握) # lst = [1,3,5,7,12,36,68,79] # n = int(inpu ...

  2. n阶楼梯,一次走1,2,3步,求多少种不同走法

    ##已知n阶楼梯,一次可以迈1,2,3步.求所有走法## 如果要列出走法,时间复杂度太高,O(n)=2**n,前两个函数遍历走法.## 如果只是单纯列出走法数量,就简单多了,也但是很容易内存爆表. # ...

  3. CT ubuntu 16.04安装 adobe flash player

    sudo apt-get  install flashplugin-installer chrome 升级 chrome://chrome-urls/ chrome://components/ 找到A ...

  4. nodejs -- event 模块, 事件模块.

    1. 注册事件 on 或者 addListener,触发事件 emit 1-1简单的使用: var EventEmitter = require('events').EventEmitter; var ...

  5. C#获取文件类型

    Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data ...

  6. ios中模态弹窗用法及UINavigationController基本用法

    - (void)viewDidLoad { [super viewDidLoad]; //点击按钮跳转 loginViewController *vc=[[loginViewController al ...

  7. centos7.4 可远程可视化桌面安装

    先啰嗦一下VNC是什么( Virtual Network Computing)VNC允许Linux系统可以类似实现像Windows中的远程桌面访问那样访问Linux桌面.本文配置机器是兴宁市网络信息中 ...

  8. JS的异步操作

    异步操作: 1.定时器都是异步操作 2.事件绑定都是异步操作 3.AJAX中一般我们都采用异步操作 4.回调函数可以理解为异步 同步:一次只能完成一个任务,如果多个任务就必须排队,先前面一个任务再执行 ...

  9. IOS Block代码块的定义与使用

    代码块的本质是和其他的变量类似,不同的是,代码块存储的数据是一个函数体.使用代码块,你可以像调用其他标准函数一样的调用,可以传入参数,并得到返回值.     脱字符是代码块的语法标记.下图表示代码块的 ...

  10. C语言笔记1

    第一部分 计算机常识 1,人与计算机交流 2,人机交互方式 3,计算机的组成结构 4,计算机的系统组成 5,进制 6,程序和指令  第二部C开发环境 1 人与计算机交流 现实中人与人交流靠语言,那么人 ...