Come scrivere uno script in Python che emette se il sedano è in esecuzione su una macchina (Ubuntu)?Come verificare se Celery/Supervisor è in esecuzione usando Python
La mia custodia. Ho un semplice file python con alcune attività. Non sto usando Django o Flask. Io uso supervisore per eseguire la coda delle attività. Ad esempio,
tasks.py
from celery import Celery, task
app = Celery('tasks')
@app.task()
def add_together(a, b):
return a + b
Relatore:
[program:celery_worker]
directory = /var/app/
command=celery -A tasks worker info
Questa tutte le opere, io ora voglio avere pagina che controlla se il processo di sedano/supervisore è in esecuzione. vale a dire qualcosa del genere forse usando Flask che mi permette di ospitare la pagina dando uno status 200 che mi permette di bilanciare il carico.
Per esempio ...
check_status.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def status_check():
#check supervisor is running
if supervisor:
return render_template('up.html')
else:
return render_template('down.html')
if __name__ == '__main__':
app.run()
Non ho più alcun upvotes per oggi, quindi sto inviando questo metodo a un commento. – sobolevn
Non penso che 'app = celery.Celery ('tasks', broker = 'redis: //')' la riga è necessaria. La variabile 'app' non viene utilizzata da nessun'altra parte. – djromero
@djromero è passato un po 'di tempo da quando ho controllato come funzionava, ma IIRC è necessario per istanziare l'app singleton negli interni della biblioteca. Non dovrebbe essere necessario se usi Celery da qualche altra parte e crea l'istanza di Celery. – Rotten194