Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sklizně Archive-it a Tests #534

Open
mariehaskovcova opened this issue Jul 13, 2020 · 13 comments
Open

sklizně Archive-it a Tests #534

mariehaskovcova opened this issue Jul 13, 2020 · 13 comments
Assignees
Milestone

Comments

@mariehaskovcova
Copy link
Contributor

mariehaskovcova commented Jul 13, 2020

po zadání/vytvoření těchto sklizní se semínka neobjeví/nevygenerují v Seznamu URL adres - v obou případech je prázdný, v případě Archive-it se objeví až když sklizeň dostane příznak - změní se stav (Probíhající apod.), v případě Tests vůbec

ve sklizni Archive-it by měla být čerstvě uzavřená a dosud nesklizená semínka semínka (stav Archivován, Archivován bez smlouvy)
ve sklizni Tests - zdroje se stavem "Zdroje, které potřebují technický dohled"

@mariehaskovcova mariehaskovcova added this to the v.1.0.1 milestone Jul 15, 2020
@Fasand
Copy link
Contributor

Fasand commented Oct 8, 2020

ArchiveIt seminka se stale v seznamu URL nezobrazuji dokud neni nastavena "Probíhající sklizeň" nebo to na produkci ted funguje? Na lokalu to ted testuji a seminka se mi zobrazuji pred i po spusteni sklizne.
Spustenim sklizne by se mela seminka pouze zmrazit, tedy negenerovat vzdy znovu, ale pokud sklizen jeste neni spustena, seminka se nacitaji stejne jako kdyz je, pouze se generuji v tu chvili.

Co se tyce testů, tam je chyba na mé strane a ted opravuji. SeedManager, ktery se pouziva pri ziskavani seminek na sklizen totiz filtruje pouze seminka, ktera jsou v archivovacich stavech (Archivován, Archivován bez smlouvy). Testovaci seminka se do toho filtrovani tedy nikdy nedostanou.

Tedy otázka: u testovacich seminek by melo probehnout podobne filtrovani jako u archivovacich, tedy:

  1. Zdoj musi byt aktivni
  2. Stav seminka musi byt "Include in harvest"
  3. "To time" je na seminku v minulosti a "From time" je v budoucnosti nebo cas neni nastaveny vubec (tohle mi tedy prijde spatne, ale podle gitu to tak uz 5 let je nastavene)
    Nebo zadne special filtrovani neni potreba a tedy proste pokud zdoj ma nastavenou technickou kontrolu, tak se seminka nactou?

@mariehaskovcova
Copy link
Contributor Author

k semínkům Archive-it (vždy jen čerstvě uzavřené zdroje): nefungovalo mi to v testu, na produkci jsme nezkoušeli. Tobě se Archive-it semínka zobrazily?

Zkusila jsem v testu vložit teď do Seederu nový zdroj (https://app.webarchiv.cz/seeder/source/detail/10775), stav archivován, platná smlouva. Tzn. teď by se měl předpokládám objevit ve sklizni Archive-it v seznamu semínek, ale seznam je prázdný (Test2 - https://app.webarchiv.cz/seeder/harvests/136/detail).

U ostatních sklizní - naplánuju sklizeň a hned se generuje seznam semínek bez ohledu na to, jestli technik začal sklízet (měnit stavy sklizně). Jakmile začne sklízet, seznam se zmrazí, to je ok

@mariehaskovcova
Copy link
Contributor Author

testovací semínka:

na ty hodnoty od/do zkusíme mrknout, ale pro test to není důležité, brala bych to tak, že když má zdroj stav technická kontrola, tak se to do testu zařadí

@Fasand
Copy link
Contributor

Fasand commented Oct 8, 2020

Aháa, tak u tech ArchiveIt uz castecne vim, v cem je problem: v definici. V #468 byla ArchiveIt seminka definována jako "nová semínka, které mají nastavenou frekvenci jednou za rok, dvakrát za rok nebo čtvrtletně", tedy seminka s frekvenci sklizeni kazdy mesic se do takove sklizne nedostanou, jelikoz se pri dalsi mesicni sklizni sklidi tak jak tak.

Bohuzel ale ani po prenastaveni toho testovaciho zdroje na "Dvakrát ročně" se nedostal do seznamu. Predpokladal jsem, ze to bude tim, ze jediny seed byl "http://test.cz", ktery uz se asi objevil ve vice skliznich, ale ani po zmene toho se tam stale nedostane. Dokonce ani po nastaveni sklizne na běžící (zkusil jsem to udelat u nove).
Takze tam bude problem jeste v necem jinem – na lokalu jsem to ted zkusil replikovat a seminke se mi do sklizne dostalo.

Testovaci seminka ted tedy nastavim, aby se tam proste dostala za kazdou cenu, pokud maji nastaveny stav.

@mariehaskovcova
Copy link
Contributor Author

aha, tak to má vlastně logiku s tím pravidlem u Archive-it semínek (máme teda nově i dvouměsíční frekvenci)

testovací semínka takhle super

@Fasand
Copy link
Contributor

Fasand commented Oct 8, 2020

Mela by tedy Archiveit seminka zustat tak jak jsou tedy, tedy pouze nesklizena seminka s frekvenci zdroje 1x ročně, 2x ročně, 4x ročně, nebo tam mam pridat i tu dvoumesicni frekvenci, tedy 6x ročně?

Jinak proc se ted do testovací sklizně nedostane ten testovací zdroj si nejsem vubec jisty. Seminka by u sklizne nemal byt zmrazena, jelikoz byla cerstve vytvorena, zdroj ma nastavenou frekvenci 2x ročně a seminko jeste nikdy nebylo sklizeno, tedy do ArchiveIt by se melo dostat a tak mi to presne funguje na lokalu.

@mariehaskovcova
Copy link
Contributor Author

přidej prosím i tu dvouměsíční (6x ročně)

jj, přesně tak, jak píšeš by to měl být, mě žádný důvod nenapadá

@Fasand Fasand modified the milestones: v.1.0.1, 1.0.5 Nov 3, 2020
@Fasand Fasand modified the milestones: 1.0.5, 1.0.6 Dec 16, 2020
@JanMeritus
Copy link
Contributor

spojeno taky s issue #402

@JanMeritus
Copy link
Contributor

@Fasand prosim overit na testovacim prostredi, nasledne se rozhodne jestli to zustane v tomto milestonu

@mariehaskovcova
Copy link
Contributor Author

sklizně Test zdá se fungují (https://app.webarchiv.cz/seeder/harvests/148/urls), sklizně Archive-it se mi nedaří, probereme

@JanMeritus
Copy link
Contributor

@Fasand prosim o update statusu

@mariehaskovcova mariehaskovcova modified the milestones: 1.0.6, 1.0.7 Aug 17, 2022
@mariehaskovcova
Copy link
Contributor Author

stále platí, že Tests jsou ok, sklizně Archiv-it nefungují

@Fasand
Copy link
Contributor

Fasand commented Dec 12, 2023

Zpráva z Messengeru pro budoucí referenci:

Na testu to nedělá problém, protože tam je nějakých 180 sklizní, na produkci jich podle mě bude krapet víc... Jak tak koukám na parametry těch sklizní, tak třeba na testu je 9 sklizní, které mají "běžící stav", ale jejich seeds_frozen je buď prázdný string nebo None, tedy nemají správně zmražená semínka.
V praxi to pak znamená, že u ArchiveIt a OneShot sklizní, které potřebují znát jaká všechna semínka byla do té doby sklizena, se naráz musí dopočítat všechny ty nezmražené historické sklizně, kterých bude na produkci ne 9 ale klidně třeba 100+ (nekoukal jsem ještě).
O to horší to je, že pokud jedna z těch historických nezmražených sklizní má taky nastaveno ArchiveIt/OneShot, tak se ten problém skoro rekurzivně opakuje 😅

Je to tedy problém mé špatné implementace, protože mě nenapadlo, že by taková situace vůbec mohla nastat – sklizeň je spuštěna, ale semínka nejsou zmraženy... Každopádně, mám podle mě řešení: pro potřeby "previously harvested seeds" bych sbíral semínka pouze ze zmrazených sklizní, nedocházelo by tedy k neustálému přepočítávání starých sklizní a timeoutu.
Jako bonus by možná stálo za to projít na produkci přes shell ty staré nezmražené sklizně a postupně je od nejstarší zmrazit, aby pro potřeby ArchiveIt/OneShot vlastně bylo co nejvíc dat. Není to ale podle mě úplně nutné, protože i pokud nějaké semínko už bylo sklizeno, tak tímhle řešením bude sklizeno ještě jednou a pak už ne, protože se zmrazí.

S tím saháním na produkci jsem radši opatrný, nerad bych tam něco v shellu zmrvil, ale minimálně to omezení na zmrazené sklizně mám připravené a na lokálu mi to ArchiveIt zrychlí o cca 90%

Pár TODOs pro mě:

  • Úprava Harvest.get_seeds(frozen_only) https://github.com/WebarchivCZ/Seeder/tree/archiveit
  • Přidat Meta.indexes na relevantní modely/pole
    • Source: state, frequency (active?, to_time?, from_time?)
    • Seed: state (url?) – mohlo by pomoci Harvest.pair_custom_seeds()
    • Harvest: status, (scheduled_on?)
  • Zkontrolovat, kolik je na produkci Harvest s Q(status__in=Harvest.PREVIOUSLY_HARVESTED_STATES) & (Q(seeds_frozen=None) | Q(seeds_frozen=""))
    • Pokud jich bude hodně, zvážit zpětné zprazení těchto sklizní, jednu po druhé od nejstarší

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants