marians / scrape-a-ris

Scrape-A-RIS is a scraper for assembly information systems (Ratsinformationssysteme) using Somacos SessionNet, written in Python.
9 stars 8 forks source link

Job Queue #16

Closed marians closed 11 years ago

marians commented 11 years ago

Für eine robustere, fehlertolerante Arbeitsweise des Scrapers empfiehlt es sich, eine "Job Queue" zu schreiben.

Intern arbeitet der Scraper schon mit mehreren Queues, die nicht persistiert werden. Persistente Queues hätten den Vorteil, dass der Scraper auch nach einem Abbruch sinnvoll neu starten könnte.

Als Backend hierfür kann die MongoDB genutzt werden, in die auch die Inhalte geschrieben werden. Ein anderes (möglicherweise besser hierfür geeignetes Backend wie z.B. Redis) würde die Systemanforderungen vermutlich unnötig verkomplizieren.

Es muss im Detail ausgearbeitet werden, wie die Queue-Einträge auszusehen haben. Ein paar Anforderungen:

Notizen zur MongoDB Implementierung:

Skizze zum Job-Eintrag

{
    _id: ObjectId(),
    queue: <Name der Queue>,
    rs: <Regionalschlüssel des RIS>,
    status: <"OPEN", "IN_PROGRESS", oder "DONE">,
    created: <Datum/Zeit>,
    key: <ID von Session, Submission, Attachment etc.>,
    failures: 0,
    payload: <Dict mit zusätzlichen Daten (optional)>
}

Mögliche Inspiration: