2017-05-29 97 views
0

在Flask的本地开发服务器下运行时,作业将被添加并正常运行。在uWSGI下运行时,作业似乎被添加到作业存储中,但从未执行。与描述不希望的行为一个简单的例子说明如下:如何使用uwsgi + flask_apscheduler通过请求向apscheduler添加作业

__init__.py

import flask 
from datetime import datetime, timedelta 
from flask_apscheduler import APScheduler 

app = flask.Flask("apscheduler_test") 
app.config["SCHEDULER_API_ENABLED"] = True 
scheduler = APScheduler() 
scheduler.init_app(app) 
scheduler.start() 

def test_job(): 
    print("test job run") 

@app.route("/test") 
def apscheduler_test(): 
    print("Adding Job") 
    scheduler.add_job(id="101", 
         func=test_job, 
         next_run_time=(datetime.now() + timedelta(seconds=10))) 
    return "view", 200 

if __name__ == '__main__': 
    app.run(port=5050) 

apschedule_test.ini

[uwsgi] 
pidfile = /var/run/%n.pid 
chdir = /opt/apscheduler 
master = true 
enable-threads = true 
threads = 20 
http-socket = :48197 
logto = /var/log/%n.log 
plugin = python3 
module = %n 
callable = app 
processes = 1 
uid = root 
gid = root 
daemonize = /var/log/apscheduler_test.log 

回答