• Plone 3 Paris Sprint discussion

  • Yet other topic suggestion: asynchronous handling of long running jobs in Plone

    from stonor on 2008-04-24 08:02
    Hi there,
    
    Other last minute topic suggestion: A better way to deal with long running
    tasks in Plone.
    
    We have a couple of places in Plone where the site admin presses a button
    and nothing seems to happen for a long time - minutes to hours. This happens
    particular on large sites with lots of content, e.g. when:
    
     * site admin deletes a user (Plone traverses the full site to remove
    potential local roles)
     * site admin switches workflow for a type - now exposed in the PMI (full
    site is traversed)
     * catalog is reindexed
    
    We could solve this a couple of ways:
    
     1) Write faster code :-)
     2) Solve it UI-wise -- give the site admin a page with e.g. a progress bar
    so he can see that something is actually happening
     3) Do such tasks in a asynchronous  way. site admin gets his page back,
    Plone continuous in the background.
    
    I think it could be fun to have a look at 3. Play around with e.g. the
    recently released zc.async, see if we can get it to run on Zope 2 and Plone,
    create a proof-concept, write a PLIP...
    
    
    
    /Anton
    
    
    Thread Outline:
  • Re: Yet other topic suggestion: asynchronous handling of long running jobs in Plone

    from Christian Scholz on 2008-04-24 08:19
    Hi!
    
    > Other last minute topic suggestion: A better way to deal with long running
    > tasks in Plone.
    
    Good idea :-)
    
    > We have a couple of places in Plone where the site admin presses a button
    > and nothing seems to happen for a long time - minutes to hours. This happens
    > particular on large sites with lots of content, e.g. when:
    > 
    >  * site admin deletes a user (Plone traverses the full site to remove
    > potential local roles)
    >  * site admin switches workflow for a type - now exposed in the PMI (full
    > site is traversed)
    >  * catalog is reindexed
    
    I think this is also important for any other thing you implement and you 
      know might run longer (e.g. some web spider type thing).
    
    > We could solve this a couple of ways:
    > 
    >  1) Write faster code :-)
    
    e.g. for web spidering or any other IO stuff this is probably not always 
    doable.
    
    >  2) Solve it UI-wise -- give the site admin a page with e.g. a progress bar
    > so he can see that something is actually happening
    
    That might still block a thread and we usually don't have that many.
    
    >  3) Do such tasks in a asynchronous  way. site admin gets his page back,
    > Plone continuous in the background.
    > 
    > I think it could be fun to have a look at 3. Play around with e.g. the
    > recently released zc.async, see if we can get it to run on Zope 2 and Plone,
    > create a proof-concept, write a PLIP...
    
    Haven't heard of zc.async yet but if you find something out at the 
    sprint I would be very interested in knowing about it. Can you also 
    access ZODB objects then from it? Because right now I would simply start 
    some script from Zope but such a script usually has no direct access to 
    the ZODB, an SQL connection is then usually easier to manage (as for the 
    ZODB you also need to load the whole class hierarchy I believe as the 
    data is not independant from it).
    
    So I am very much interested in at least knowing more about zc.async and 
    some thoughts on how it might be integrated if it does the job.
    
    (but unfortunately I cannot attend as my mother's birthday party is on 
    saturday and that's a time problem then).
    
    cheers,
    
    Christian
    
    -- 
    Christian Scholz                         video blog: http://comlounge.tv
    COM.lounge                                   blog: http://mrtopf.de/blog
    Luetticher Strasse 10                                    Skype: HerrTopf
    52064 Aachen                              Homepage: http://comlounge.net
    Tel: +49 241 400 730 0                           E-Mail cs@...
    Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T
    
    connect with me: http://mrtopf.de/connect
    
    • Re: Yet other topic suggestion: asynchronous handling of long running jobs in Plone

      from tarek_ziade on 2008-04-24 08:27
      2008/4/24 Christian Scholz <cs@...>:
      
      > Hi!
      >
      >  Other last minute topic suggestion: A better way to deal with long running
      >> tasks in Plone.
      >>
      >
      > Good idea :-)
      >
      >  We have a couple of places in Plone where the site admin presses a button
      >> and nothing seems to happen for a long time - minutes to hours. This
      >> happens
      >> particular on large sites with lots of content, e.g. when:
      >>
      >>  * site admin deletes a user (Plone traverses the full site to remove
      >> potential local roles)
      >>  * site admin switches workflow for a type - now exposed in the PMI (full
      >> site is traversed)
      >>  * catalog is reindexed
      >>
      >
      > I think this is also important for any other thing you implement and you
      >  know might run longer (e.g. some web spider type thing).
      >
      >  We could solve this a couple of ways:
      >>
      >>  1) Write faster code :-)
      >>
      >
      > e.g. for web spidering or any other IO stuff this is probably not always
      > doable.
      >
      >   2) Solve it UI-wise -- give the site admin a page with e.g. a progress
      >> bar
      >> so he can see that something is actually happening
      >>
      >
      > That might still block a thread and we usually don't have that many.
      >
      >   3) Do such tasks in a asynchronous  way. site admin gets his page back,
      >> Plone continuous in the background.
      >>
      >> I think it could be fun to have a look at 3. Play around with e.g. the
      >> recently released zc.async, see if we can get it to run on Zope 2 and
      >> Plone,
      >> create a proof-concept, write a PLIP...
      >>
      >
      > Haven't heard of zc.async yet but if you find something out at the sprint I
      > would be very interested in knowing about it. Can you also access ZODB
      > objects then from it? Because right now I would simply start some script
      > from Zope but such a script usually has no direct access to the ZODB, an SQL
      > connection is then usually easier to manage (as for the ZODB you also need
      > to load the whole class hierarchy I believe as the data is not independant
      > from it).
      
      
      zope clock server might also be a good candidate to consider, to launch
      asynchronous tasks at regular
      paces (see iw.subscriber)
      
      ++
      Tarek
      
      
      
      
      >
      >
      > So I am very much interested in at least knowing more about zc.async and
      > some thoughts on how it might be integrated if it does the job.
      >
      > (but unfortunately I cannot attend as my mother's birthday party is on
      > saturday and that's a time problem then).
      
      
      Hey, Happy birthday Christian's mom !
      
      
      
      
      >
      >
      > cheers,
      >
      > Christian
      >
      > --
      > Christian Scholz                         video blog: http://comlounge.tv
      > COM.lounge                                   blog: http://mrtopf.de/blog
      > Luetticher Strasse 10                                    Skype: HerrTopf
      > 52064 Aachen                              Homepage: http://comlounge.net
      > Tel: +49 241 400 730 0                           E-Mail cs@...
      > Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T
      >
      > connect with me: http://mrtopf.de/connect
      >
      >
      > --
      > Archive:
      > http://www.openplans.org/projects/plone-3-paris-sprint/lists/plone-3-paris-sprint-discussion/archive/2008/04/1209039578061
      > To unsubscribe send an email with subject unsubscribe to
      > plone-3-paris-sprint-discussion@....  Please contact
      > plone-3-paris-sprint-discussion-manager@... for questions.
      >
      >
      
      
      -- 
      Tarek Ziadé - Directeur Technique
      INGENIWEB (TM) - SAS 50000 Euros - RC B 438 725 632
      Bureaux de la Colline - 1 rue Royale - Bâtiment D - 9ème étage
      92210 Saint Cloud - France
      Phone : 01.78.15.24.00 / Fax : 01 46 02 44 04
      http://www.ingeniweb.com - une société du groupe Alter Way
      
      • Re: Yet other topic suggestion: asynchronous handling of long running jobs in Plone

        from Christian Scholz on 2008-04-24 08:33
        Tarek Ziade wrote:
        > 2008/4/24 Christian Scholz <cs@...>:
        
        > 
        > zope clock server might also be a good candidate to consider, to launch
        > asynchronous tasks at regular
        > paces (see iw.subscriber)
        
        Is there actually some documentation about this? Always I mention the 
        problem people tell me about it but Google only turns out very old stuff 
        (2005). So is there more? How do I use it?
        
        >> So I am very much interested in at least knowing more about zc.async and
        >> some thoughts on how it might be integrated if it does the job.
        >>
        >> (but unfortunately I cannot attend as my mother's birthday party is on
        >> saturday and that's a time problem then).
        > 
        > 
        > Hey, Happy birthday Christian's mom !
        
        Thanks, I will tell her :-)
        
        -- christian
        
        
        -- 
        Christian Scholz                         video blog: http://comlounge.tv
        COM.lounge                                   blog: http://mrtopf.de/blog
        Luetticher Strasse 10                                    Skype: HerrTopf
        52064 Aachen                              Homepage: http://comlounge.net
        Tel: +49 241 400 730 0                           E-Mail cs@...
        Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T
        
        connect with me: http://mrtopf.de/connect
        
        • Re: Yet other topic suggestion: asynchronous handling of long running jobs in Plone

          from tarek_ziade on 2008-04-24 09:07
          2008/4/24 Christian Scholz <cs@...>:
          
          > Tarek Ziade wrote:
          >
          >> 2008/4/24 Christian Scholz <cs@...>:
          >>
          >
          >
          >> zope clock server might also be a good candidate to consider, to launch
          >> asynchronous tasks at regular
          >> paces (see iw.subscriber)
          >>
          >
          > Is there actually some documentation about this? Always I mention the
          > problem people tell me about it but Google only turns out very old stuff
          > (2005). So is there more? How do I use it?
          
          
          It is bundled into zope, you can launch a process that is triggered at
          regular times.
          Let's say, every minutes. From there you can call a script, or a view, to do
          some work.
          
          We use this to watch for mails to be sent to subcribers.
          
          Clock server is configured in zope.conf
          
          it is explained here:
          
          https://ingeniweb.svn.sourceforge.net/svnroot/ingeniweb/iw.subscriber/trunk/iw/subscriber/docs/README.txt
          
          the code is then simply triggered, let me know if you need more info
          
          Maybe we could have a nice UI on the top of this, to deal with asynchronous
          tasks, I don't know...
          
          
          >
          >  So I am very much interested in at least knowing more about zc.async and
          >>> some thoughts on how it might be integrated if it does the job.
          >>>
          >>> (but unfortunately I cannot attend as my mother's birthday party is on
          >>> saturday and that's a time problem then).
          >>>
          >>
          >>
          >> Hey, Happy birthday Christian's mom !
          >>
          >
          > Thanks, I will tell her :-)
          >
          > -- christian
          >
          >
          > --
          > Christian Scholz                         video blog: http://comlounge.tv
          > COM.lounge                                   blog: http://mrtopf.de/blog
          > Luetticher Strasse 10                                    Skype: HerrTopf
          > 52064 Aachen                              Homepage: http://comlounge.net
          > Tel: +49 241 400 730 0                           E-Mail cs@...
          > Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T
          >
          > connect with me: http://mrtopf.de/connect
          >
          >
          > --
          > Archive:
          > http://www.openplans.org/projects/plone-3-paris-sprint/lists/plone-3-paris-sprint-discussion/archive/2008/04/1209040389249
          >
          > To unsubscribe send an email with subject unsubscribe to
          > plone-3-paris-sprint-discussion@....  Please contact
          > plone-3-paris-sprint-discussion-manager@... for questions.
          >
          >
          
          
          -- 
          Tarek Ziadé - Directeur Technique
          INGENIWEB (TM) - SAS 50000 Euros - RC B 438 725 632
          Bureaux de la Colline - 1 rue Royale - Bâtiment D - 9ème étage
          92210 Saint Cloud - France
          Phone : 01.78.15.24.00 / Fax : 01 46 02 44 04
          http://www.ingeniweb.com - une société du groupe Alter Way
          
  • Re: Yet other topic suggestion: asynchronous handling of long running jobs in Plone

    from tarek_ziade on 2008-04-24 08:20
    Great Idea Anton, please add it in the list so I have it listed on the board
    tomorrow
    
    2008/4/24 Anton Stonor <anton@...>:
    
    > Hi there,
    >
    > Other last minute topic suggestion: A better way to deal with long running
    > tasks in Plone.
    >
    > We have a couple of places in Plone where the site admin presses a button
    > and nothing seems to happen for a long time - minutes to hours. This happens
    > particular on large sites with lots of content, e.g. when:
    >
    >  * site admin deletes a user (Plone traverses the full site to remove
    > potential local roles)
    >  * site admin switches workflow for a type - now exposed in the PMI (full
    > site is traversed)
    >  * catalog is reindexed
    >
    > We could solve this a couple of ways:
    >
    >  1) Write faster code :-)
    >  2) Solve it UI-wise -- give the site admin a page with e.g. a progress bar
    > so he can see that something is actually happening
    >  3) Do such tasks in a asynchronous  way. site admin gets his page back,
    > Plone continuous in the background.
    >
    > I think it could be fun to have a look at 3. Play around with e.g. the
    > recently released zc.async, see if we can get it to run on Zope 2 and Plone,
    > create a proof-concept, write a PLIP...
    >
    >
    >
    > /Anton
    >
    >
    
    
    -- 
    Tarek Ziadé - Directeur Technique
    INGENIWEB (TM) - SAS 50000 Euros - RC B 438 725 632
    Bureaux de la Colline - 1 rue Royale - Bâtiment D - 9ème étage
    92210 Saint Cloud - France
    Phone : 01.78.15.24.00 / Fax : 01 46 02 44 04
    http://www.ingeniweb.com - une société du groupe Alter Way
    
  • Re: Yet other topic suggestion: asynchronous handling of long running jobs in Plone

    from rsantos on 2008-04-24 10:30
    Anton Stonor wrote:
    > Hi there,
    >
    > Other last minute topic suggestion: A better way to deal with long 
    > running tasks in Plone.
    >
    > We have a couple of places in Plone where the site admin presses a 
    > button and nothing seems to happen for a long time - minutes to hours. 
    > This happens particular on large sites with lots of content, e.g. when:
    >
    >  * site admin deletes a user (Plone traverses the full site to remove 
    > potential local roles)
    >  * site admin switches workflow for a type - now exposed in the PMI 
    > (full site is traversed)
    >  * catalog is reindexed
    >
    > We could solve this a couple of ways:
    >
    >  1) Write faster code :-)
    >  2) Solve it UI-wise -- give the site admin a page with e.g. a 
    > progress bar so he can see that something is actually happening
    >  3) Do such tasks in a asynchronous  way. site admin gets his page 
    > back, Plone continuous in the background.
    >
    > I think it could be fun to have a look at 3. Play around with e.g. the 
    > recently released zc.async, see if we can get it to run on Zope 2 and 
    > Plone, create a proof-concept, write a PLIP...
    >
    
    This is interesting,
    
    I assume zc.async uses a more modern approach, but it may be worth 
    looking at Stepper (http://www.simplistix.co.uk/software/zope/stepper)
    
    
    Ricardo
    
    -- 
    Ricardo Alves <rsa@...>
    Eurotux <http://www.eurotux.com>