【发布时间】:2018-07-13 19:03:38
【问题描述】:
我正在尝试将我的代码从 django-channels 1.1.8 升级到 2.0.0
所以,我只想执行一个非常简单的异步后台任务,不知道如何像在 1.1.8 中那样通过其名称调用消费者
以下示例不起作用(不打印):
routing.py
from channels.routing import ProtocolTypeRouter, ChannelNameRouter
from tasks.consumers import LongTask
application = ProtocolTypeRouter({
'channel': ChannelNameRouter({
'long-task': LongTask
}),
})
consumers.py
from channels.consumer import SyncConsumer
class LongTask(SyncConsumer):
def long_task(self, message):
print(message)
views.py
def perform_long_task(request):
channel_layer.send('long-task', {
'type': "long.task",
'text': 'Hey!'
})
我猜这里有问题channel_layer.send('long-task', {...})
非常感谢
【问题讨论】:
标签: django django-views django-channels