Hi,

I think i fixed the problem.

The error was a wrong import when registering the request method. The import worked within the ide envoirement but not outside and inside the ide in porduced this strange behavior.

Regards
   Estartu

Am 11.10.21 um 18:58 schrieb Mike Orr:
Where is the cache stored, and which Lock class are you using?
Application globals are tricky in Pyramid. One place you can store
them is a registry attribute (request.registry.myattr); I use this for
SQLAlchemy engines. Or you could stuff it into the configuration
settings at startup. The registry has a native API for global objects
but it's kind of complicated; 'pyramid_services' makes it more
intuitive. But that may be overkill for one simple object.

If your cache lookup is in view code; I'd encapsulate it into a
request method, to decouple the views from the cache location.

Logging entries usually include the module name, so that's not
unusual. What's unusual is it's not fully qualified (
'myapp.lib.agent_cache'). You may have disabled displaying the parents
in the logging configuration, or more worrisome, it may be importing
it as a top-level import or switching between two different
'agent_cache' modules. You can print or log ``repr(agent_cache)`` to
see where it comes from and its parents.

On Mon, Oct 11, 2021 at 1:35 AM 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/901cb508-6a31-4c9c-b8c6-1a2c4f71c632%40augusta.de.

Reply via email to