flask+celery常見問題及解決方法

1、
[root@ansible flask_celery]# celery -A app worker --loglevel=info
Traceback (most recent call last):
  File "/usr/bin/celery", line 11, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/celery/__main__.py", line 30, in main
    main()
  File "/usr/lib/python2.7/site-packages/celery/bin/celery.py", line 81, in main
    cmd.execute_from_commandline(argv)
  File "/usr/lib/python2.7/site-packages/celery/bin/celery.py", line 793, in execute_from_commandline
    super(CeleryCommand, self).execute_from_commandline(argv)))
  File "/usr/lib/python2.7/site-packages/celery/bin/base.py", line 309, in execute_from_commandline
    argv = self.setup_app_from_commandline(argv)
  File "/usr/lib/python2.7/site-packages/celery/bin/base.py", line 477, in setup_app_from_commandline
    user_preload = tuple(self.app.user_options['preload'] or ())
AttributeError: 'Flask' object has no attribute 'user_options'


解決方法:
celery -A app.celery worker --loglevel=info


https://groups.google.com/forum/#!topic/python-cn/GreLCH6dNCg


2、
[2016-06-23 03:30:44,519: ERROR/MainProcess] Received unregistered task of type '__main__.add_together'.
The message has been ignored and discarded.


Did you remember to import the module containing this task?
Or maybe you are using relative imports?
Please see http://bit.ly/gLye1c for more information.


The full contents of the message body was:
{'utc': True, 'chord': None, 'args': (4, 4), 'retries': 0, 'expires': None, 'task': '__main__.add_together', 'callbacks': None, 'errbacks': None, 'timelimit': (None, None), 'taskset': None, 'kwargs': {}, 'eta': None, 'id': '4f0b8f7f-8d44-4a75-b2b6-b5fb738287f0'} (221b)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/celery/worker/consumer.py", line 456, in on_task_received
    strategies[name](message, body,
KeyError: '__main__.add_together'


解決方法:
不要講 add_together 方法寫在主模塊中,因爲註冊時註冊的task爲模塊名.add_together, 而調用時task爲 __main__.add_together


3、
celery -A app.celery worker --loglevel=info
/usr/lib/python2.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.restful is deprecated, use flask_restful instead.
  .format(x=modname), ExtDeprecationWarning
/usr/lib/python2.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.restful.reqparse is deprecated, use flask_restful.reqparse instead.
  .format(x=modname), ExtDeprecationWarning
Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!


If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).


User information: uid=0 euid=0 gid=0 egid=0


解決方法:

export C_FORCE_ROOT="true"

http://xiaorui.cc/2014/04/23/python%E4%BD%BF%E7%94%A8celery%E5%81%9A%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E6%97%B6%E7%9A%84%E5%B8%B8%E8%A7%81%E7%9A%84%E9%97%AE%E9%A2%98/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章