因此,兩件事情
1)使用日誌記錄,你得到更多的信息:
2) 您需要在if __name__=='__main__':
塊外聲明:
1 from flask import Flask
2 from flask_apscheduler import APScheduler
3 import logging
4
5 logging.basicConfig(level=logging.DEBUG,
6 format='%(asctime)s %(levelname)s %(message)s')
7
8 logger = logging.getLogger(__name__)
9
10 class Config(object):
11 JOBS = [
12 {
13 'id': 'job1',
14 'func': 'scratch:job1',
15 'args': (1, 2),
16 'trigger': 'interval',
17 'seconds': 5
18 }
19 ]
20
21 SCHEDULER_API_ENABLED = True
22
23
24 def job1(a, b):
25 logger.info(str(a) + ' ' + str(b))
26
27 app = Flask(__name__)
28 app.config.from_object(Config())
29
30 scheduler = APScheduler()
31 scheduler.init_app(app)
32 scheduler.start()
33
34
35 if __name__ == '__main__':
36 app.run()
~
~
輸出:
[2017-02-15 14:29:39 +0000] [25122] [INFO] Booting worker with pid: 25122
2017-02-15 14:29:39,817 INFO Adding job tentatively -- it will be properly scheduled when the scheduler starts
2017-02-15 14:29:39,819 INFO Added job "job1" to job store "default"
2017-02-15 14:29:39,819 INFO Scheduler started
2017-02-15 14:29:39,820 DEBUG Looking for jobs to run
2017-02-15 14:29:39,820 DEBUG Next wakeup is due at 2017-02-15 14:29:44.816072-05:00 (in 4.995362 seconds)
2017-02-15 14:29:44,816 DEBUG Looking for jobs to run
2017-02-15 14:29:44,817 INFO Running job "job1 (trigger: interval[0:00:05], next run at: 2017-02-15 14:29:44 EST)" (scheduled at 2017-02-15 14:29:44.816072-05:00)
2017-02-15 14:29:44,817 INFO 1 2
問題:
工作原本沒有開火。問題是,你的調度定義(是你的塊if __name__ == '__main__'
此代碼,當你調用Python文件直接(蟒蛇myapp.py)
當你與Gunicorn推出只被擊中,在__name__
不再是主內,它是「myapp.py」,所以它永遠不會到創建和添加調度程序的代碼部分:)
(構建一個gunicorn env來測試) – Kelvin
wops,編輯func。應該是'myapp',不能正常工作 –
請注意詳細記錄日誌?所以事實上這項工作沒有使用日誌記錄而是觸發了,但沒有輸出到控制檯?更新的 –