Django-Q 异步任务(使用 Redis)不执行

问题描述 投票:0回答:1

我已阅读 Django-Q 异步任务的 documentation 我已经通过这个video在Windows 10上安装了Redis(我还有RabbitMQ服务器)

我没有收到任何错误,我从函数中看不到任何内容,所以我相信该函数不会执行。我认为问题出在 Redis 服务器配置上。

你有什么想法吗? 这里是代码:

设置.py

INSTALLED_APPS = [..]+'django_q',

# redis defaults
Q_CLUSTER = {
    'redis': {
        'host': '127.0.0.1',
        'port': 6379,
        'db': 0,
        'password': None,
        'socket_timeout': None,
        'charset': 'utf-8',
        'errors': 'strict',
        'unix_socket_path': None
    }
}

任务.py

import math
import sys


def add(n1,n2):
     test=n1/n2
     return test
 

views.py

def app_details(request,slug):
        if request.method == "POST":
            test = request.POST.get('iy')
        t1=test
        t2=test*1542
            async('tasks.saga',t1,t2)
        return render(request, 'page.html',....

我在 PyCharm 中收到此消息(此处没有错误):

23:54:27 [Q] INFO Enqueued 3

Redis 命令:

enter image description here

Redis 命令服务器:

enter image description here

python django asynchronous redis
1个回答
0
投票

关于任务输出缺失/错误:

除了您发送的

INFO

 行之外,在 Django-Q 上执行的任务不会在应用程序的常规日志中产生任何内容。如果你想查看结果/错误。您需要打开管理页面并转到 Django-Q 部分下的“成功/失败的任务”。您可以检查数据库中的 django_q 表,但任务执行结果不是人类可读的格式。

对于Redis:

    任务在Redis数据库中出现和消失的速度非常快。所以看到那里的任务并不容易。您唯一可以观察到的是
  1. qcluster
     的状态(Django-Q“集群”管理执行任务的应用程序)。
  2. get name
     的意思是“向我打印名为 
    name
     的键的值。最好观察 Redis 数据库内容是列出可用的键。有关操作方法,请参阅以下帖子:
    Redis 命令获取所有可用的键钥匙?
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.