延遲伺服器

Channels 裡面的一個選擇性 app channels.delay 實做了 ASGI Delay Protocol.

Server 透過一個自訂的 rundelay 指令,which listens to the asgi.delay channel for messages to delay.

從延遲入門開始

安裝app加’channels.delay’到’INSTALLED_APPS’:

INSTALLED_APPS = (
    ...
    'channels',
    'channels.delay'
)

Run migrate to create the tables

python manage.py migrate

執行

python manage.py rundelay

現在你可以開始進行將訊息延遲

訊息延遲

To delay a message by a fixed number of milliseconds use the delay parameter.

這是一個案例:

from channels import Channel

delayed_message = {
    'channel': 'example_channel',
    'content': {'x': 1},
    'delay': 10 * 1000
}
# The message will be delayed 10 seconds by the server and then sent
Channel('asgi.delay').send(delayed_message, immediately=True)