celery中密码带有特殊字符

填写broker_url时认证密码中可能含有(*,?, /,$)等特殊字符,启动celery任务时会报错,例如:

# 连接redis的认证密码为:my/pass$word?1234
# celery -A mytasks worker --loglevel=info
......
ValueError: invalid literal for int() with base 10: 'my'

此问题的解决方法是把这个密码encode编码处理下。这里使用urllib库,处理的代码如下:

from urllib import quote_plus
PASSWORD=quote_plus('my/pass$word?1234')
broker_url = 'redis://:{}@myhostname:port'.format(PASSWORD)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • urllib and urllib2 区别 –博主提示:下面的是python2中的用法,python3需要做出相应...
    sunnyRube阅读 1,451评论 0 1
  • 学习一门技术,总是要踩好多坑,然后收货一大堆疑惑,这么多相似的方式该学哪个呢?外面公司常用的是哪个呢?就比如pyt...
    徐同学呀阅读 1,884评论 1 11
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,720评论 0 13
  • 用户注册并向163邮箱发送邮件(两种方式:同步和异步,ubuntu和windows上的不同) **********...
    楚糖的糖阅读 1,533评论 0 5
  • 明天就要期中考试了,学校里弥漫着紧张的气氛,老师都在紧张的备课,学生们在朗朗地读书,就连天空也来飘些雨滴凑热闹,似...
    AA闫现召阅读 558评论 1 0