2017-01-11 3 views
0
from celery import Celery 
from celery.worker.control import inspect_command 
app = Celery('tasks', broker='pyamqp://[email protected]//') 

@app.task 
def add(x, y): 
    return x + y 


@inspect_command 
def current_prefetch_count(state): 
    return {'prefetch_count': state.consumer.qos.value} 

Ich habe versucht, den Code mit Sellerie läuft, aber es gab mir eine Fehlermeldung:Sellerie Inspizieren Aufgabe von Python

File"c:\python27\lib\site-packages\kombu\utils\imports.py",line56,insymbo 
_by_name 

typeError: inspect_command() takes exactly 0 arguments (1 given) 

Auch wollte ich inspect_command anpassen dieses sysfile.py

#!/usr/bin/env python 
import platform 
import celery 
import os 
import psutil 
import json 




def Speed_Test(): 
    Speed_list = (os.popen("speedtest-cli --share --simple").read()).split("\n") 
    result = [Speed_list[-2].split(":")[-1]] 
    result.append(Speed_list[-3].split(":")[-1]) 
    return result 

def Sys_Info(): 

    inner_Dict = {} 
    inner_Dict["CPU Model"]=platform.processor() 
    inner_Dict["No of CPU"]=psutil.cpu_count() 
    inner_Dict["Disk info"]=psutil.disk_usage('/') 
    inner_Dict["celery"] = (celery.__version__) 
    inner_Dict["Upload"] = Speed_Test()[0] 
    inner_Dict["Download"] = Speed_Test()[1] 
    return json.dumps(inner_Dict) 
x = Sys_Info() 
print x 
laufen

Antwort

0

Der inspect_command Dekorateur nimmt optional eine Reihe von kwargs. So müssen Sie Anruf es:

@inspect_command() 
def current_prefetch_count(state): 
    return {'prefetch_count': state.consumer.qos.value} 

Zum Beispiel, wenn Sie den Befehl wollen einen anderen Namen haben, mit dem sie aufgerufen werden kann, können Sie alias verwenden können:

@inspect_command(alias='foo') 
def current_prefetch_count(state): 
    return {'prefetch_count': state.consumer.qos.value} 

Sie entdecken All dies durch Lesen des Codes celery.worker.control.

+0

wie etwa das nächste, was in der Suche Dank erhalten, die –

+0

viel hilft auch wollte ich inspect_command custome dieses sysfile.py –

+0

Aufruf Sys_Info laufen(): die eine andere py-Datei ist und das Ergebnis Sys_info integrieren get() Funktion in ihren eigenen inspect-Befehl –

Verwandte Themen