twisted——scheduling tasks

如果我们想在reactor开始后,能执行一些方法,可以使用reactor.callLater()方法和twisted.internet.task中的方法。

1、使用reactor.callLater()

calllater.py

1 from twisted.internet import reactor
2
3 def fun(s):
4     print "3 seconds later %s" % s
5     reactor.stop()
6
7 reactor.callLater(3, fun, "ha!")
8 reactor.run()

2、如果我们需要使用到方法返回的数据,那么就需要借用task.deferLater()方法,它将会生成Defered,并且建立延迟调用。

deferlater.py

 1 from twisted.internet import task, reactor
 2
 3 def f(s):
 4     reactor.stop()
 5     return "3 seconds later %s " % s
 6
 7
 8 d=task.deferLater(reactor, 3, f, ‘ha!‘)
 9
10 def called(result):
11     print result
12     # reactor.stop()
13
14 d.addCallback(called)
15
16 reactor.run()

3、如果我们想重复的调用某一个方法,可以使用task.LoopingCall()方法。

1 def runEverySecond():
2     print "a second has passed"
3
4 l=task.LoopingCall(runEverySecond)
5 l.start(1.0)
6
7 reactor.run()

如果我们需要取消任务。

1 def f():
2     print "I would‘t run .. "
3
4 callID=reactor.callLater(5, f)
5 callID.cancel()
6 reactor.run()

需要注意的是,我们要想那些任务能够执行,则必须通过reactor.run()来开始。

twisted——scheduling tasks,布布扣,bubuko.com

时间: 2024-10-18 16:51:16

twisted——scheduling tasks的相关文章

Caching Data with Spring, Messaging with Redis, Scheduling Tasks

Caching Data with Spring Messaging with Redis Scheduling Tasks

Scheduling Tasks

在spring的<task:*> XML名字空间功能一样,使用在Configuration类如下:    @Configuration    @EnableScheduling    public class AppConfig {        //@Bean 定义    }    在spring容器管理bean中检测@Scheduled注解.如:    package com.myco.task;    public class MyTask {        @Scheduled(fix

SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)

转载请标明出处: http://blog.csdn.net/forezp/article/details/71023783 本文出自方志朋的博客 这篇文章将介绍怎么通过spring去做调度任务. 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务. @SpringBootApplication @EnableScheduling public class SpringbootSchedulingTasksApplication { pu

企业级 SpringBoot 教程 (十八)定时任务(Scheduling Tasks)

这篇文章将介绍怎么通过spring去做调度任务. 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务. @SpringBootApplication @EnableScheduling public class SpringbootSchedulingTasksApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSc

Hypervisor, computer system, and virtual processor scheduling method

A?hypervisor?calculates the total number of processor cycles (the number of processor cycles of one or more physical processors) in a first length of time based on the sum of the operating frequencies of the respective physical processors and the fir

Power aware dynamic scheduling in multiprocessor system employing voltage islands

Minimizing the overall power conservation in a symmetric multiprocessor system disposed in a system-on-chip (SoC) depends on using voltage islands operated at different voltages such that similar circuits will perform at significantly different level

SpringBoot中使用Scheduling执行定时任务

SpringBoot自带的 Schedule,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多以下任务都是在单线程下执行的第一步 创建SpringBoot项目第二步 添加@EnableScheduling开启定时任务第三步 设置定时需要执行的任务有两种方法设置执行时机第一种我们就且叫他为普通方法1.fixedRate:会为所有任务的开始执行时间编排一个表,假如fixedRate=5000,且第一次开始时间是10:00:00任务 开始执行时间任务1 10:00:00任务2

一:HDFS 用户指导

1.hdfs的牛逼特性 Hadoop, including HDFS, is well suited for distributed storage and distributed processing using commodity hardware. It is fault tolerant, scalable, and extremely simple to expand. MapReduce, well known for its simplicity and applicability

spring-boot实战【09】【转】:Spring Boot中使用@Scheduled创建定时任务

我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. 创建定时任务 在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间. 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置 1 2 3 4 5 6 7 8 9 10 @SpringBootApplication @E