Timer unico UWSGI Decorator Python
-
21-12-2019 - |
Domanda
Vorrei eseguire un comando simile a un cron con decoratori Python che deve essere univoco (in modo che se il processo precedente è ancora in esecuzione non avviene un nuovo processo) con UWSGI.
Dare un'occhiata alla documentazione ( http://uwsGi-docs.readthedocs.org / en / ultima / pythonecorars.html ) Ho visto che posso fare qualcosa come questo
Task.py
from uwsgidecorators import *
@timer(600) #every 10 minutes
def myfunction(signum):
pass
.
UWSGI.INI
[uwsgi]
...
import=task
...
.
Ma in questo modo non è unico come se faccio qualcosa del genere (seguendo la documentazione http://uwsgi-docs.readthedocs.org/en/latest/cron.html )
Task.py
...
all_my_tasks
...
.
UWSGI.INI
[uwsgi]
...
cron2 = minute=-10,unique=1 python path/to/task.py
...
.
Non c'è un modo per farlo usando gli arredatori e il timer di UWSGI invece di Cron?
Soluzione
Utilizzare l'API di blocco UWSGI:
from uwsgidecorators import *
@timer(600) #every 10 minutes
def myfunction(signum):
if uwsgi.is_locked(): return
uwsgi.lock()
....
uwsgi.unlock()
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow