apache-airflow1.9.0 + python3 + rabbitmq + librabbitmq2.0.0
相关配置如下:
broker_url = amqp://cord:123456@localhost:5672//
celery_result_backend = rpc://
结果运行的时候抛出如下异常:
TypeError can't pickle memoryview objects XXXX
原因分析:
airflow 1.9.0使用的是celery4.x, 而celery 4.x使用json序列化,而不是用pickle进行序列化。
因此需要将librabbitmq改为pyamqp
http://docs.celeryproject.org/en/latest/userguide/configuration.html#conf-database-result-backend
因此将broker_url配置协议修改为pyamqp即可:
broker_url = pyamqp://cord:123456@localhost:5672//
参考链接: