2013-07-08 42 views
17
from apscheduler.scheduler import Scheduler 
import os 
class ListHref(): 
    def __init__(self): 
     print 'In ListHref Class!' 
     self.name_hrefs = {} 
     self.name_img = {} 
     self.path = os.path.dirname(__file__) 
     print 'Out ListHref Class' 
    def other_function():... 

def job(): #function named job 
    print 'In job!' 
    book_href = ListHref() 
    print 'book_href created!' 

if __name__ == "__main__": 
    sched = Scheduler() 
    #job() #it's ok if job() called only 
    sched.daemonic = False #non daemon thread 
    sched.add_interval_job(job,minutes=0.1) 
    sched.start() 

Vấn đề: Nếu việc gọi() chỉ thay vì sched, đó là ok Vì vậy, tôi bối rối rằng tại sao init (tự) có thể không gọi là hoàn toàn? và có vấn đề gì với 'Không có handerls nào có thể tìm thấy cho logger "apscheduler.scheduler"'? Trên kết quả mã python:Không xử lý có thể được tìm thấy cho logger "apscheduler.scheduler"

Trong công việc()

Trong ListHref Class!

Không handerls có thể được tìm thấy cho logger "apscheduler.scheduler"

Trong công việc()

Trong ListHref Class!

Trong công việc()

Trong ListHref Class!

... (vân vân)

+0

Thử khởi tạo mô-đun [đăng nhập] (http://docs.python.org/2/library/logging.html). Một cái gì đó như 'nhập khẩu đăng nhập; logging.basicConfig()'. Điều đó sẽ tạo ra một trình xử lý cho trình ghi nhật ký gốc và sẽ làm cho trình điều chỉnh apscheduler trở nên hạnh phúc. – tdelaney

+0

Cảm ơn bạn! Đề xuất của bạn đã khắc phục được sự cố của tôi và từ tệp nhật ký, tôi thấy rằng mã 'python đường dẫn os.path.dirname' (_ _ \ _ file \ _ \ _) 'đã tạo ra lỗi. kết quả cho thấy "toàn cầu" \ _ \ _ file \ _ \ _ "không được xác định", sau khi tôi mã hóa nó như "path = 'F: \ Python_Test'", everthing là ok. Vì vậy, đây là những gì sai với "\ _ \ _ file \ _ \ _"? – Dyllian

+0

Tôi không có một lời giải thích tốt cho điều đó trừ khi bạn đang gõ nó vào trình thông dịch (có nghĩa là, chỉ cần chạy python và gõ nó vào). Thông thường, \ _ \ _ file \ _ \ _ là tên tệp tương đối của mô-đun hiện tại nhưng không có 'mô-đun hiện tại' cho trình thông dịch và \ _ \ _ tệp \ _ \ _ không tồn tại. – tdelaney

Trả lời

40

apscheduler đang sử dụng python logging module mà cần phải được khởi tạo. Khai thác gỗ là một chút phức tạp (xem link) nhưng tối thiểu là:

import logging 
logging.basicConfig() 

basicConfig hỗ trợ một số tính năng khai thác gỗ thông thường nhưng giá trị của nó để tìm ra một số trong những ứng dụng phức tạp hơn cho các logger.