I made these modifications and here is what I got while running the
cookbook example:

Started at 2009-01-03 00:20:03.642114
hit f5 to refresh!
303 See Other

In the cookbook I replaced every print with yield.

Did anyone manage to make web.background work with web 0.3?

Thank you.

On Dec 16 2008, 12:22 pm, leone <[email protected]> wrote:
> It runs with these updates:
> """Helpers functions to run log-running tasks."""
> -from web import utils
> +from web import utils, http
>  from web import webapi as web
> +import threading
>
>  defbackground(func):
>      """A function decorator to run a long-running function as 
> abackgroundthread."""
>      def internal(*a, **kw):
>          web.data() # cache it
>
> +        web._context = {}
> -        tmpctx = web._context[threading.currentThread()]
>          web._context[threading.currentThread()] = utils.storage
> (web.ctx.copy())
> +        tmpctx = web._context[threading.currentThread()]
>
>          def newfunc():
>              web._context[threading.currentThread()] = tmpctx
>              func(*a, **kw)
>              myctx = web._context[threading.currentThread()]
>              for k in myctx.keys():
>                  if k not in ['status', 'headers', 'output']:
>                      try: del myctx[k]
>                      except KeyError: pass
>
>          t = threading.Thread(target=newfunc)
>          background.threaddb[id(t)] = t
>          t.start()
>          web.ctx.headers = []
> -        return seeother(changequery(_t=id(t)))
> +        return web.seeother(http.changequery(_t=id(t)))
>      return internal
>  background.threaddb = {}
>
>  def backgrounder(func):
>      def internal(*a, **kw):
>          i = web.input(_method='get')
>          if '_t' in i:
>              try:
>                  t =background.threaddb[int(i._t)]
>              except KeyError:
>                  return web.notfound()
>              web._context[threading.currentThread()] = web._context[t]
>              return
>          else:
>              return func(*a, **kw)
>      return internal
>
> Theexamplemust be changed.
> I used an iframe and a global var.
>
> On Dec 16, 2:32 am, "Anand Chitipothu" <[email protected]> wrote:
>
> > On Tue, Dec 16, 2008 at 5:55 AM, Aaron Swartz <[email protected]> wrote:
>
> > >> How can I suggest you some fix tobackgroundmodule?
>
> > > Sure, what's wrong with ti?
>
> > It doesn't work with 0.3 and it has been moved to experimental.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/webpy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to