[Plone-IT] spostare contenuti... ma sotto sotto.

SauZheR at gOOgle sauzher a gmail.com
Gio 16 Lug 2009 09:31:01 UTC


Il giorno 15 Luglio 2009 11.41, Yuri<yurj a alfa.it> ha scritto:
> SauZheR at gOOgle ha scritto:
>>
>> Salve a tutti.
>> Ho la necessita' di spostare grossi quantitativi di dati tra cui
>> centinaia di pdf da una cartella plone in un altro oggetto (dello
>> stesso plone) derivato da atfolder.
>> Tecnicamente in un db ad oggetti non c'e' nulla di piu' facile. Basta
>> "appendere" al nuovo container il riferimento agli oggetti contenuti
>> nel old_folder.
>> In effetti l'approccio funziona. Un semplice ciclo:
>>
>> for key, obj in old_folder.objectItems():
>>  new_folder[key]=obj
>>
>> fa esattamente cio' che voglio.
>> Rimane solo da cancellare l'old_folder e dare al new_folder l'id che
>> aveva l'old.
>>
>> Il problema e' che questo approccio interessa il catalogo e
>> l'operazione dura diverse decine di minuti per reindicizzare
>> soprattutto i pdf. Alla fine, dal punto di vista del catalogo non
>> dovrebbe cambiare nulla: i percorsi rimangono gli stessi e ugualmente
>> rimangono invariati gli UID.
>>
>> La domanda e': come posso evitare che il catalogo venga interessato da
>> queste operazioni?
>>
>
> queuecatalog :)
>
> http://pypi.python.org/pypi/Products.QueueCatalog
>
> QueueCatalog - asynchronous cataloging
>
> A QueueCatalog delegates most requests to a ZCatalog that is named as part
> of the QueueCatalog configuration.
>
> Requests to catalog or uncatalog objects are queued. They must be processed
> by a separate process (or thread).
>
> The queuing provides benefits:
>
>   * Content-management operations, performed by humans, complete much
>     faster, this making the content-management system more effiecient
>     for it's users.
>   * Catalog updates are batched, which makes indexing much more efficient.
>   * Indexing is performed by a single thread, allowing more effecient
>     catalog document generation and avoiding conflict errors from
>     occuring during indexing.
>   * When used with ZEO, indexing might e performed on the same machine
>     as the storage server, making updates faster.
>
>
>
> http://pypi.python.org/pypi/Products.PloneQueueCatalog
>
> Products.PloneQueueCatalog makes it easier to use QueueCatalog in your Plone
> site.
>

Questa utility e' sicuramente molto interessante. vale la pena approfondire.



>
> Oppure togli l'utility per reindicizzare i pdf (pdftohtml o simile), fai
> l'operazione, e poi quando hai possibilità, reindicizzi.

Plausibile. sarebbe opportuno scriptare il tutto, altrimenti la vedo
troppo inciampevole.

>
> Oppure non fai nulla, poiché il catalogo reindicizza per path e tu quello
> non lo cambi, quindi basta che aggiorni lo uid dell'oggetto forse? Mah...

Dopo l'operazione, se non cancello nulla, ho lo stesso oggetto
indicizzato 2 volte. Cioe' ci sono 2 entry nel catalogo che puntano a
2 path diversi, ma ciascuno di questi URL puntano allo stesso oggetto
nel data.fs: i.e. se modifico l'oggetto di un path, vedo la modifica
anche all'altro path. Credo che ci siano anche 2 uid, a questo punto.
In quanto l'associazione biunivoca mi sembra essere UID<->path...il
che mi creera' qualche problema.

Questo sdoppiamento vorrei evitarlo.

>
>> Grazie dell'attention :P
>>
>> alessandro.
>>
>>

vi faccio sapere ;)

-- 
  bye
SauZheR
************************************
l'iterazione è umana...
la ricorsione, Divina!
************************************
reply to: sauzher AT gmail DOT com




Maggiori informazioni sulla lista Plone-IT