Flask-APScheduler POST JSON新增定时任务传参不匹配报错求助
错误原因
- 目标函数指向错误:你请求中填写的
func: "app:run"指向了Flask应用实例自带的run()方法,该方法不需要接收位置参数,并不是你自己定义的接收id参数的run函数。 - 参数格式错误:你填写的
args是字符串类型,Flask-APScheduler要求args为数组类型,字符串会被按字符拆解为多个独立的位置参数,因此会报参数数量不匹配的错误。
解决方法
直接修改Postman的请求体为以下格式即可:
{ "id":"testing2", "func":"__main__:run", "args": ["testing2"], "trigger":"interval", "seconds":5 }
参数说明
func改为__main__:run:你自定义的run函数在当前启动脚本的主模块下,用__main__指代当前运行的主模块即可正确指向你写的run函数。如果你的脚本文件名为其他名称(比如job.py),把__main__改成对应文件名即可。args改为数组格式:直接把要传入的参数作为数组元素填写即可,无需加括号,后台会自动按顺序传入给目标函数。
如果担心位置参数匹配错误,也可以用关键字参数传参,写法如下:
{ "id":"testing2", "func":"__main__:run", "kwargs": {"id": "testing2"}, "trigger":"interval", "seconds":5 }
修改后重新发送POST请求,即可实现每5秒打印一次testing2的效果。
内容的提问来源于stack exchange,提问作者TCP-88
相关产品推荐
相关产品推荐

