【问题标题】:Import issues with Python and celeryPython 和 celery 的导入问题
【发布时间】:2014-12-23 05:40:34
【问题描述】:

在我的生产服务器上发生了一个非常奇怪的问题,在 UAT 或我的开发环境中没有出现。堆栈设置为 Ubuntu 14LTS、Apache2、Python 2.7、Celery、RabbitMQ、Django 1.6。

它的工作原理是每当需要生成 excel 报告时都会调用一个异步任务。根据公司的类型,创建不同的报告并将其通过电子邮件发送给登录的用户。创建不同报告的函数都放在一个名为 report_lib.py 的文件中,并且它们不会从任何其他应用程序导入。代码如下:

            if policies.carrier == "class_one":
                report_lib.create_remittance_class_one_report(company_id)
            else:
                report_lib.create_generic_remittance_report(company_id)

得到这个,第一个条件没有问题。当我没有设置公司类型时,第二个条件有效(按预期工作),但对于任何其他类,它失败并出现以下错误:

[2014-10-27 17:56:55,271: WARNING/Worker-1] There was an error: 'module' object has no attribute 'create_generic_remittance_report'

为了让事情变得更有趣,我删除了条件并默认为所有情况下只调用“create_generic_remittance_report”函数的代码,这在没有抱怨该模块的情况下工作。

我 99% 确定没有循环引用。哦,被引用的库位于 django 项目中唯一使用的应用程序下。这可能是编译器缓存问题吗? 有没有人使用相同的设置遇到过类似的问题?

请帮忙!

【问题讨论】:

    标签: python django python-2.7 rabbitmq celery


    【解决方案1】:

    发现问题,被引用的函数缩进了一个额外的标签。我想既然 celery 只调用它,它就会返回那个错误。

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 1970-01-01
      • 2014-12-10
      • 2022-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 2011-08-06
      相关资源
      最近更新 更多