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?

È stato utile?

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()
.

http://uwsgi-docs.readthedocs.org/en/latest/Locks.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top