2012-04-18 90 views
1

我想用django-utils以并行线程(这些命令在I/O上处理99.99%)异步启动大量命令。不过,我不断收到以下错误:djutils队列命令没有被发现

QueueException: MyProject.maintenanceInterface.commands.queuecmd_refreshDataAsync not found in CommandRegistry 

功能refreshDataAsync是commands.py内maintenanceInterface - 和maintenanceInterface是在安装的应用程序列表。

我正在排队的消费者,像这样:

python .\manage.py queue_consumer 

当我看着排队的消费者日志,它会告诉我,它已经发现的功能(在INIT):

djutils.commands.queuecmd_delayed_resize 
djutils.queue.queue.QueueCommand 
djutils.queue.queue.PeriodicQueueCommand 
maintenanceInterface.commands.queuecmd_refreshDataAsync 
2012-04-18 16:57:10,598:djutils.queue.logger:INFO:Starting periodic command execution thread 

仍然抛出异常。

我错过了某个步骤?

回答

1

不是一个简单的答案,但确实是一个很好的建议,只需使用芹菜和django芹菜来做这个异步处理。

你可以用django-utils(至少在异步方面)和更多(大量后端,你可以命名的任何设置/参数)来完成你所有的工作,也有很少的相关项目使用芹菜做异步事情(例如,你想发送电子邮件使用芹菜你写0行代码,有一个应用程序)

+0

该系统的下一个版本将使用芹菜。 – Goro 2012-04-19 18:52:26

0

问题是,消费者导入相同的库作为Django的代码库 - 但路径略有不同。

消费者被导入

maintenanceInterface.commands.queuecmd_refreshDataAsync 

和代码是显式调用它上面的包:

WepPlatform.maintenanceInterface.commands.refreshDataAsync 

所以消费者无法匹配,不会运行命令。