记录一次配置celery

以往参加的项目都是老项目,自己也就加task什么的,没亲自搭建过celery整体,昨天撞墙撞得不轻。

项目主框架用的flask,存储用mysql,数据库操作用sqlalchemy。

先写的task函数,其中有数据库操作,其他直接调用都成功,数据库操作执行就

回头贴

原来db和flask的app绑定,app不生效,普通函数没法用db

遂启动app,还是不行,搜到解决方案,加两行代码

回头贴

终于好了

然后加celery的app和配置吧,加好后视图启动worker,咦,项目连接mq失败,好的,公司用的是mq和redis,redis我装了,mq没装过,那就装

还是很顺利的,参考这篇:https://blog.csdn.net/u010889616/article/details/80643892

注意要注册用户和host和赋予权限,一开始没搞明白host是什么,现在推测类似数据库的一个库?

创建host参考这篇:https://blog.csdn.net/w893932747/article/details/81018591

好,启动了

咦,怎么无log了,任务发布呢

又一搜,啊,是我太久不用,要启动beat

启动之后,beat在发布任务

但worker这log有错误练练,

回头贴

应该是celery没找到任务,为什么呢?看了官方文档,没看出有什么问题,想了好多原因,我路径写的不对?schedule不能用字符串写任务?百度相关问题,也没解决方案,他们都是任务删了还在执行的原因,我这个任务有,它就是找不到啊啊啊

找了好久,不记得怎么查到的了,原来是创建app的时候,有个参数,用于导入task所在的文件路径,加了之后,它终于找到了 = = 

啊——无语了

你可能感兴趣的:(记录一次配置celery)