Hi Michael,
there is a code to fill the cache.
I spend 3 hours debugging this.
Importing and calling the method directly works perfectly well. If i
call it in the next line in code via request object the cache is empty.
The first call produces a log entry with the correct package. The call
via request object produces the log message in package
moving the cache object to another python file fixes the problem.
My guess is, request methods somehow reimport the module without the
correct package. So the cache get re inited and the package information
is lost.
Regards
Estartu
Am 11.10.21 um 18:33 schrieb Michael Merickel:
I think there's a lot of unknowns in helping unpack this - for starters there's
no code supplied that actually modifies the cache, so of course it is empty!
- There's a few gotchas in python - for example if this is done in the main file in your app (foo.py) and you
run "python -m foo" then the module may be imported twice as "__main__" and as
"foo" which can cause surprises.
- I see you're using waitress so this probably isn't a problem, but you're
using an in-memory cache and so nothing will be shared across processes if you
ever fork.
- Michael
On Oct 11, 2021, at 03:34, Gerhard Schmidt <[email protected]> wrote:
Hi,
today I encountered a very strange problem with request methods.
<--- code --->
cache = {'agents': set(),
'time': 0.0}
cache_lock = Lock()
def in_agent_cache(request):
with cache_lock:
return request.user_agent in cache['agents']
<--- end code --->
If I call the method directly, everything works fine.
if I register the method as a request method and call it via
request.in_agent_cache() the dict is always the default version, the set empty
and time .
If I move the dict and lock to another file and import it. Everything works
even as a request method.
The log messages are also recorded under a wrong module
2021-10-11 10:29:33,153 INFO [agent_cache:96][waitress-0] in_agent_cache called
agent_cache is the name of the py file and not the package it's in.
Any hint if I'm doing something wrong.
Regards
Estartu
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pylons-discuss/90ae76af-8406-3ec5-b490-2f4af254431d%40augusta.de.
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pylons-discuss/f7aa23fd-673c-81a2-f127-37029835d76c%40augusta.de.