[Dynamic Language] Python定时任务框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Dynamic Language] Python定时任务框架相关的知识,希望对你有一定的参考价值。

APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。

测试计划任务

mac-abeen:timetask abeen$ vim testtask.py

   1 # !/usr/bin/env python                                                                                                                                                                                 
   2 # -*- encoding:utf-8 -*-                                                               
   3                                                                                        
   4 from datetime import datetime                                                          
   5                                                                                        
   6                                                                                        
   7 class TestTask(object):                                                                
   8     """                                                                                
   9         测试计划任务                                                                   
  10     """                                                                                
  11                                                                                        
  12     def print_file(self, content):                                                     
  13         f = open("testtask.log", "a")                                                  
  14         f.write(content)                                                               
  15         f.close()                                                                      
  16                                                                                        
  17                                                                                        
  18     def run_second(self):                                                              
  19         self.print_file("run_second is run on {0} \r\n ".format(datetime.now()))       
  20                                                                                        
  21                                                                                        
  22     def run_minute(self):                                                              
  23         self.print_file("run_minute is run on {0} \r\n ".format(datetime.now()))       
  24                                                                                        
  25                                                                                        
  26                                                                                        
  27                                                                                        
  28 if __name__ == "__main__":                                                             
  29     tt = TestTask()                                                                    
  30     tt.run_second()                                                                    
  31     tt.run_minute()  

 

任务执行
mac-abeen:timetask abeen$ vim run_task.py

   1 # !/usr/bin/env python                                                                                                                                                                                 
   2 # -*- encoding:utf-8 -*-                                                               
   3                                                                                        
   4 from datetime import datetime                                                          
   5 import time                                                                            
   6 from apscheduler.schedulers.blocking import BlockingScheduler                          
   7 from testtask import TestTask                                                          
   8                                                                                        
   9 def run():                                                                             
  10     scheduler = BlockingScheduler()                                                    
  11     scheduler.add_job(func=TestTask().run_second, trigger=‘interval‘, seconds=3)       
  12     scheduler.add_job(func=TestTask().run_minute, trigger=‘interval‘, seconds=60)      
  13                                                                                        
  14     scheduler.start()                                                                  
  15                                                                                        
  16                                                                                        
  17 if __name__ == "__main__":                                                             
  18     print "scheduler is run ......"                                                    
  19     run() 

 日志记录(测试部分日志信息)

1 run_second is run on 2017-06-29 15:13:16.070406                                                                                                                                                        
   2  run_minute is run on 2017-06-29 15:13:16.071498
   3  run_second is run on 2017-06-29 15:13:32.378192
   ...
  22  run_minute is run on 2017-06-29 15:14:29.379333
  23  run_second is run on 2017-06-29 15:14:29.379462
  24  run_second is run on 2017-06-29 15:14:32.380961
 ...
  44  run_minute is run on 2017-06-29 15:15:29.380135
  45  run_second is run on 2017-06-29 15:15:32.380093
  46  run_second is run on 2017-06-29 15:15:35.378075
....

 

 


官方资料帮助:
https://pypi.python.org/pypi/APScheduler/#downloads

以上是关于[Dynamic Language] Python定时任务框架的主要内容,如果未能解决你的问题,请参考以下文章

Dynamic Language Runtime (DLR) 初深

论文阅读Ask me anything: Dynamic memory networks for natural language processing

python dynamic array

python Dynamic Ingest的Python脚本

python dynamic_urls_generator

python compare with other language