安装celery在windows上的步骤和注意事项如下:
由于Celery 4.0版本不支持Windows操作系统,如果在Windows上安装Celery 4.0,会出现以下错误:
flask_clery
因此,你只能安装Celery 3.1版本:
接下来,安装py for redis模块:
安装Redis服务时需要注意,许多在线文章对系统环境描述不清,导致误导。Redis官方支持Linux,但不支持Windows。要在Windows上使用Redis服务,请从以下地址下载Redis安装包并完成安装:
https://www.php.cn/link/8ee3592d7d251e3f7fe4da469785592b
如果未安装Redis包,将会出现以下错误:
或
注意:安装目录不要选择C盘,否则可能会遇到权限依赖问题。
添加Redis环境变量:
初始化Redis服务:
进入Redis安装目录,打开cmd并运行命令:
如果出现错误,可以通过双击目录下的
并在新窗口中输入和来解决。
在Flask中集成Celery时,需要在Flask配置中添加以下配置:
在Flask工程的
目录下创建Celery实例,注意以下代码必须在Flask app读取完配置文件后编写:
完整的示例代码如下:
常用的配置文件示例如下:
在cmd中启动Celery服务:
其中,
为你的工程名称,在这里为。
调用Celery任务的示例代码如下:
绑定任务的示例:
任务继承的示例:
任务名称的设置:
每个任务必须有不同的名称。如果没有显示提供名称,任务装饰器将会自动产生一个,产生的名称会基于这些信息:1)任务定义所在的模块,2)任务函数的名称。
显示设置任务名称的例子:
最佳实践是使用模块名称作为命名空间,这样的话如果有一个同名任务函数定义在其他模块也不会产生冲突。
安装Flower来监控任务和worker的状态:
启动Flower(默认会启动一个webserver,端口为5555):
进入
即可查看。
常见错误及其解决方案:
原因是:Redis-server没有启动。
解决方案:到Redis安装目录下执行
。
检查Redis是否启动:
。
解决:
原因:任务没有注册或注册不成功,只有在启动的时候提示有任务的时候,才能使用该任务。
flask_celery
解决:
你在那个类中使用Celery就在哪个类中执行
。根据上一部提示的任务列表给任务设置对应的名称,如在Test中:
目录结构:
则应该启动的命令为:
同时,如果你的Task.py也有任务,那么你还应该重新创建一个cmd窗口执行:
Celery的工作进程可以创建多个。
flask_celery
flask_celery
参考:
https://www.php.cn/link/d61f3a760c9bcbc9bb75228deddd9379
https://www.php.cn/link/381dc6cd0e6bfa5feb1f70484171a7a9
Celery用户指南,强烈推荐看Redis安装Celery使用https://redis.io/topics/quickstart
https://www.php.cn/link/c031d32c88833d1f9a2144071eaf34d9 最佳实践
https://www.php.cn/link/f6c744ece7e1a36892eba3a5d2938110
https://www.php.cn/link/337751565e513506b6400ca2ad6ff5df
https://www.php.cn/link/a2667dd894062c9ca2a4602cb4718f52 Celery 和 redis 完成任务队列