OK great thanks I used the global keyword within the function.  Thanks!!

On Sat, Oct 24, 2015 at 6:18 AM, David Montgomery <[email protected]
> wrote:

> The data in the hash is slowly changing. E.g. 1000 keys in a hash.  So
> ideally want to load the hash every 5 mins rather than ever call. In
> production have to support 10qps.
>
> oh..i see.So to make gobal how do I do it with the decorator?
>
> @rbtimer(120,target='workers')
>   def load_redis(signum):
>      updated_hash = redis.get('data')
>     with open('/tmp/meta_post.json', 'w') as outfile:
>              json.dump(updated_hash, outfile, indent=4, sort_keys=True)
>
>
>   updated_hash =  load_redis()?
>
>
> On Sat, Oct 24, 2015 at 6:09 AM, Riccardo Magliocchetti <
> [email protected]> wrote:
>
>> Il 23/10/2015 23:15, David Montgomery ha scritto:
>>
>>> Hi,
>>>
>>> I am using the gevent loop with python bottle.
>>>
>>> So every 120 seconds I load data from redis into a python hash.  For a
>>> sanity
>>> check I save the data as a json string every 120 and can verify that the
>>> data is
>>> updated due to the timer from the saved data I see on disk.
>>>
>>> However, the worker has to use the updated hash to select items that
>>> might have
>>> been updated from the data that was supposed to be updated from the
>>> reloaded
>>> data.  However it is not.  For me to get updated data that works I have
>>> to do a
>>> touch reload which defeats the purpose.  Below is my logic.  So how do I
>>> resolve?
>>>
>>> Thanks
>>>
>>>
>>> from uwsgidecorators import *
>>> @rbtimer(120,target='workers')
>>>   def load_redis(signum):
>>>      updated_hash = redis.get('data')
>>>     with open('/tmp/meta_post.json', 'w') as outfile:
>>>              json.dump(updated_hash, outfile, indent=4, sort_keys=True)
>>> <-THIS
>>> WORKS
>>>
>>
>> isn't updated_hash a local variable?
>>
>>
>>> def foo(updated_hash){
>>>      do stuff
>>>
>>> @get('/hash/')
>>> def hash():
>>>
>>>        json_data = foo(updated_hash) <- THIS USES OLD DATA
>>>        return json_data
>>>
>>
>> Why aren't you simply reading from redis here? It would make things
>> simpler. I can't think reading from redis is slower than "do stuff" with
>> the hash.
>>
>> --
>> Riccardo Magliocchetti
>> @rmistaken
>>
>> http://menodizero.it
>> _______________________________________________
>> uWSGI mailing list
>> [email protected]
>> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>>
>
>
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to