Koppel

Een Web Hook Taakwachtrij op basis van Tornado en Redis
Download nu

Koppel Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Public Domain
  • Prijs:
  • FREE
  • Naam uitgever:
  • James Arthur
  • Uitgever website:
  • http://github.com/thruflo/torque

Koppel Tags


Koppel Beschrijving

Een Web Hook-taakwachtrij op basis van Tornado en Redis Koppel is een Web Hook-taakwachtrij op basis van Tornado en Redis. Het is bedoeld om een vergelijkbaar patroon te bieden aan het TaakqueUe van Google App Engine. Om het koppel te gebruiken, moet u een Redis-database uitvoeren, een consolescript dat een Tornado-webtoepassing en één proces per taakwachtrij blootlegt. U kunt dan taken toevoegen aan een of meer wachtrijen, hetzij met behulp van de Python-client-API die koppel biedt of via een HTTP-API (of inderdaad door ze rechtstreeks aan de database toe te voegen). Taskers bestaan uit een URL en sommige params. Wanneer een taak wordt uitgevoerd, plaatst het koppel de params naar de URL. Als de taakfouten, steunt het steil totdat deze te vaak fouten is, op welk moment het is verwijderd. Tasks worden opgeslagen in een REDIS SortedSet. Tornado wordt gebruikt om taken asyncronously uit te voeren, zonder te blokkeren.Install: Installeer de afhankelijkheden van REDIS en Tornado. (n.b.: zie ./etc/redis.tiger.patch Als, zoals ik, je nog steeds OSX Tiger gebruikt). Installeer vervolgens het koppel ei: Python Setup.py InstallRun: REDIS REDIS: ./ Redis-Serverstart De Tornado-toepassing: ./ Bin / Torque-ServictArt De taakwachtrij: ./ Bin / Torque-Processee --Help tegen een van het koppel Console-scripts voor een lijst met configuratie-opties. Als u bijvoorbeeld een tweede wachtrij wordt uitgevoerd, kunt u gebruiken: ./ Bin / Torque-Process --QueUe_Name = FOOBAUSUSE: POST / ADD_TASK toevoegen met twee params: * URL die de URL is om een taak aan de wachtrij toe te voegen. Naar de Webhook wilt u de taak om * Params aan te vragen, die een JSON-woordenboek is van de params die u wilt plaatsen bij de Webhook U bent een voorbeeld in Python (met de Tornado-applicatie die beschikbaar is op LocalHost, die op Poort 8889 beschikbaar is, : Importeer JSONIMPORT URLLIBMYTASK = {'URL': 'http://mywebservice.com/hooks/do/foo', 'Params': json.dumps ({'foo', 'Somevalue', 'baz': 99}) } Target_url = 'http: // localhost: 8889 / haken / add'urlllib.urlopen (Target_url, Urllib.urlencode (MyTask)) Dit wacht een postverzoek naar http://mywebservice.com/hooks/do/do/do with the Params foo = somevalue en baz = 99 om zo snel mogelijk te worden gemaakt. Je kunt iets vergelijkbaars maken met behulp van een programmeertaal die URL-verzoeken kan maken. Als u echter Python gebruikt, kunt u de Client API gebruiken dat koppel biedt: van koppel.client import add_taskadd_task (URL = 'http: //mywebservice.com/hooks/do/foo', params = {'A': 1}) Merk op dat dit niet vereist dat JSON codeert voor de params. U kunt een vertraging voor de taak opgeven, zodat deze een aantal seconden is uitgevoerd (maar niet noodzakelijkerwijs bij): add_task (URL = '...', params = {...}, delay = 20) # zal uitvoeren Na 20 secondenIndividuele taken backoff exponentieel als ze fout, tot een maximale backoff-vertraging die is configureerbaar als --max_task_delay, totdat ze fouten --Max_task_Erors tijden (op welk moment worden verwijderd) .Zo Voer het uit en gebruik het. Vereisten: · Python


Koppel Gerelateerde software