python apscheduler没有关闭

时间:2017-06-01 17:32:30

标签: python python-2.7 apscheduler

我试图通过删除job并完全关闭它来阻止apscheduler继续运行!

它们都不起作用,我的函数expire_data仍然被触发

def process_bin(value):
    print "Stored:",pastebin.value
    print "Will expire in",pastebin_duration.value,"seconds!"

    if pastebin_duration>=0:
        scheduler = BlockingScheduler()
        job=scheduler.add_job(expire_data, 'interval', seconds=5)
        scheduler.start()
        job.remove()
        scheduler.shutdown()

def expire_data():
    print "Delete data!"

我该如何阻止它?

1 个答案:

答案 0 :(得分:2)

  

问题:我正试图阻止apscheduler运行

您使用的是BlockingScheduler,因此您无法使用var array1 = [ 'A', 'B', 'A', 'B']; var array2 = [ 5, 5, 7, 5]; var array3 = [true,true,true,true]; all_arrays = [array1, array2, array3]; let obj = {}; for (let i = 0; i < all_arrays[0].length; i++) { let new_obj = recursive_objects(all_arrays, 0, i) $.extend(true, obj, new_obj); } console.log(obj); function return_array(array, temp_obj) { let keys = Object.keys(temp_obj); for (let key of keys) { } } function recursive_objects(arrays, arrays_index, index) { let obj = {} if (arrays_index < arrays.length) { obj[arrays[arrays_index][index]] = recursive_objects(arrays, ++arrays_index, index); } return obj; }

  

APScheduler BlockingScheduler

     

BlockingScheduler是最简单的调度程序   它在前台运行,所以当你调用start()时,调用永远不会返回

  

了解Choosing the right scheduler

     
      
  • BlockingScheduler:在调度程序是您的流程中唯一运行的时候使用
  •   
  • BackgroundScheduler:在您不使用以下任何框架时使用,并希望调度程序在应用程序内部的后台运行
  •   
  • AsyncIOScheduler:如果您的应用程序使用asyncio模块,则使用
  •   
  • GeventScheduler:如果您的应用程序使用gevent
  • ,请使用   
  • TornadoScheduler:如果您正在构建Tornado应用程序,请使用
  •   
  • TwistedScheduler:如果您正在构建Twisted应用程序,请使用
  •   
  • QtScheduler:如果您正在构建Qt应用程序,请使用
  •