Paxdaemonica

Werknemer en toepassingsserver voor Python
Download nu

Paxdaemonica Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Naam uitgever:
  • Jeffrey Jenkins
  • Uitgever website:
  • http://qcircles.net

Paxdaemonica Tags


Paxdaemonica Beschrijving

Werknemer en toepassingsserver voor Python PAXDAEMICAA is een module voor het instellen van een systeem voor het uitvoeren van toepassingen met uniforme logging en monitoring, een extreem eenvoudige implementatie- en upgradeproces, RPC / Remote Asynchrone uitvoering. Deze README zal proberen te documenteren wat momenteel wordt geïmplementeerd. Ik zal blogposten schrijven over toekomstige plannen en koppelen in de juiste secties, dus er is geen verwarring over wat het nu doet. REQUIRINGSI heeft geprobeerd het aantal externe vereisten te minimaliseren. Vanaf nu heb je een Redis-server nodig die op dezelfde machine en de Python Redis-bibliotheek (https://github.com/andymccurdy/redis-py).starting / basic Processesto start PAXD, run Python Paxd / ROSSERVER.PY . Dit start de server, het controllerproces en een UI op poort 8000. De webserver van de UI is eigenlijk een dunne wikkel rond een PAXD-toepassing die u vindt in PAXD / WEBUIAPP / WEBUI.PY. De server heeft ook een pseudo-app voor de controller die de verschillende commando's behandelt PAXD-instantie moet een unieke instantie-ID hebben, hoewel op dit moment een waarde is die hard gecodeerd is in de root-server. De unieke ID is alleen aan wanneer er meerdere instanties van PAXD-lezing van dezelfde wachtrij zijn. Het wordt gebruikt om "Active" -taken in de taaklijst "Failed" te verplaatsen bij het laden van een aanvraag (sinds het opstarten van de toepassing kan er geen actieve taken zijn, het is veilig om aan te nemen dat taken met de instantie-ID van de stroom Server was onvolledig wanneer de server uitgeschakeld is). Applicationsa PAXD-applicatie is, op zijn eenvoudigste, slechts een Python-functie. Echter, om een aanvraag iets meer te laden is nodig. Een applicatie heeft verschillende sleutelattributen die nodig zijn om het te laden: - Path - Dit wordt toegevoegd aan Sys.Path in de processen waarbij de aanvraag wordt uitgevoerd - dit is de dot.delimiated.name van de functie die moet worden gebeld. Het verwacht dat dit waar is: Entry.rpartition ('.') == (Module, '.', Functie) - Queue - (Optioneel) Dit is waar de applicatie zijn gegevens van krijgt. Als er geen wachtrij staat, zullen alle processen hun opdrachten constant uitvoeren. Er zijn andere kenmerken op de toepassingsobjecten, maar dit zijn de enigen die voor nu kunnen worden ingesteld. Wanneer een aanvraag wordt geladen, wordt er een willekeurige ID aan toegewezen. Meerdere exemplaren van dezelfde applicatie kunnen worden uitgevoerd op de server.Server-opdrachtenDe opdrachten die beschikbaar zijn op de server zijn: - een aanvraag laden. /laden. Zie Scripts / Load_Task.py.- Pauzeer een aanvraag. / PAUZE? ID = App_ID - Verbruik een aanvraag. / niet losmaken? ID = app_id- Verwijder een aanvraag. / Verwijderen? ID = App_IdThe Bottom Three-opdrachten zijn beschikbaar in de web-ui.rpc / asynchrone uitvoering PAXD / client.py is er een taakdecorator die een "vertraging" -attribuut aan een functie zal toevoegen. Het kenmerk is een functie die kan worden gebruikt (zoals in selderij) om asynchroon asynchroon uit te voeren. Het stuurt een ingelegd bericht naar de server en retourneert een belofingsobject dat kan worden gebruikt om het resultaat te halen indien gewenst. Om de aanvragen om daadwerkelijk te worden verwerkt, moet een aanvraag voor de ingerichte functie worden geladen (zie Scripts / Load_Task.py.Web Uithe Web UI, gestart op poort 8000, geeft een lijst met de uitvoeringstoepassingen en stelt u in staat om te worden gepauzeerd , Ongewerkt en verwijderd. De web-ui zelf kan niet worden gepauzeerd of verwijderd, omdat dat zou uitwijzen, de API die wordt gebruikt om de server te controleren / bedienen. MessageShere zijn twee klassen om te worden verzonden: één voor JSON en een voor Python en één voor Python Peithon. API's zijn hetzelfde. Een aanvraag vereist een REDIS-verbinding, de naam van een wachtrij en de Args / KWD's waarmee het doelwit moet worden gebeld. Elk verzoek heeft een UUID die de wachtrij is in Redi's waarmee het antwoord is Wachtrijen hebben ooit één item). Wanneer een bericht wordt verzonden, wordt deze toegevoegd aan de gegeven wachtrij in redi's. Als er een gratis processor in het pool van de toepassing is, zal het: - een item van de wachtrij in de wachtrij verplaatsen: in behandeling - in een Transactie, verwijder het item uit de wachtrij: in behandeling en instellen in de wachtrij: Activ E, A REDIS HASH, met een waarde van het instantie-ID-proces Het artikel in een transactie, verwijdert u het item uit de wachtrij: actief en schrijf het antwoord op de responswachtrij van het verzoek. De verzendmethode van de aanvraag retourneert een belofte. Als .get () de belofte wordt opgeroepen, zal het de waarde retourneren of een uitzondering verhogen (als er een fout is). Vereisten: · Python


Paxdaemonica Gerelateerde software