调度由Tornado IOLoop负责,任务执行可为线程或者进程模式。
github 地址: https://github.com/thomashuang/chronos
安装 pip install chronospy
import logging
import time
import tornado
import chronos
import os
import urllib2
def test_process():
LOGGER.info("process pid %s", os.getpid())
def test(word):
LOGGER.info("an other task, say '%s'", word)
def say():
response = urllib2.urlopen('https://www.google.com/')
html = response.read()
LOGGER.info(html[:10])
def init():
global LOGGER
debug = True
level = logging.DEBUG if debug else logging.INFO
logging.basicConfig(level=level,
format='%(asctime)s %(levelname)-8s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', filemode='a+')
LOGGER = logging.getLogger("demo")
# bind a ioloop or use default ioloop
chronos.setup() # chronos.setup(tornado.ioloop.IOLoop())
chronos.schedule('say', chronos.every_second(1), say)
chronos.schedule('say2', chronos.every_second(1), test_process, once=True, process=True)
chronos.schedule('say3', chronos.every_second(1), lambda: test("test3"))
chronos.start(True)
if __name__ == '__main__':
init()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.