Docker / Django / Celery / RabbitMQ执行我删除的代码的旧版本

时间:2017-09-01 06:10:21

标签: python django docker rabbitmq celery

我在Docker中运行我的Django应用程序。我正在使用后台工作以及Celery + RabbitMQ的定期工作,在主应用程序的独立容器中运行。

一切都在本地使用“heroku local”。

在Digital Ocean上的Ubuntu实例上运行我的应用程序时,我注意到后台任务和定期任务正在执行我的代码的旧版本。具体来说,我上周从我的Django模型中删除了一个字段,旧代码引用了该删除字段,因此发生错误。但是,我的新代码不再引用丢失的字段。

以下是我尝试过的一些事情:

  1. 重建并重启docker(无法正常工作)
  2. 删除所有.pyc文件(不起作用)
  3. 清除所有芹菜任务(不起作用)
  4. 重启我的数字海洋实例(无效)
  5. 将我的所有代码和泊坞窗环境移至全新的数字海洋实例。 (这是工作!)
  6. 我现在遇到过两次这样的问题了,我希望找到一个更好的解决方案,而不是每次发生错误时都转移到新机器上。我猜Celery或RabbitMQ已经在我不知道的地方缓存了旧代码。

    提前致谢!

    与此相关但非解决方案对我有用:Celery/Rabbitmq/Django - Old tasks being executed without being called in my code

0 个答案:

没有答案