2015-10-15 1 views
3

Je voudrais exécuter APScheduler qui fait partie de WSAP (via Apws modwsgi avec 3 travailleurs) webapp. Je suis nouveau dans le monde WSGI donc je vous serais reconnaissant si vous pouviez résoudre mes doutes:python: APScheduler dans l'application WSGI

  1. Si APScheduler est une partie de webapp - il devient en vie juste après la première demande (d'abord après le démarrage/reset Apache) qui est exécuté au moins par un travailleur? Démarrer/réinitialiser Apache ne démarre pas - au moins une requête est nécessaire. Qu'en est-il des demandes simultanées - chaque travailleur exécuterait-il le même ensemble de tâches d'APScheduler ou il n'y aura qu'un seul ensemble partagé par tous les travailleurs? Est-ce qu'une fois le processus en cours d'exécution (webapp exécuté par worker) resterait actif (les tâches d'APScheduler s'exécuteraient) ou pourrait se terminer après un certain temps d'inactivité (en conséquence - les tâches d'APScheduler ne s'exécuteront pas)?

Merci!

+0

Fils de travail ou processus de travail? –

+0

3 discussions, 1 processus – KoDPI

Répondre

2

Vous avez raison - le planificateur ne démarrera pas avant l'arrivée de la première requête. Par conséquent, l'exécution d'un planificateur dans un agent WSGI n'est pas une bonne idée. Une meilleure idée serait d'exécuter le planificateur dans un processus séparé et de se connecter au planificateur si nécessaire via un mécanisme RPC tel que RPyC ou Execnet.

+0

Alex: Qu'en est-il de la question 2: Des demandes concurrentes? Merci. – Raj

+0

Les threads de travail de Mod_wsgi n'exécutent pas les tâches d'APScheduler; il maintient son propre pool de threads pour cela. –