Of course, what could be done, make a variable container and differt the
insert?

For my usage as far as I can see a db insert on each request is not the
bottle neck...

But I understand for a bigger project it could be not praticable...

Thanks

Richard


On Tue, Apr 23, 2013 at 8:50 AM, Anthony <[email protected]> wrote:

> I suppose because it does a db insert on every request.
>
>
> On Tuesday, April 23, 2013 8:26:53 AM UTC-4, Richard wrote:
>
>> Guruyaya, could you explain why, to you, this basic simple usage stats is
>> unefficiant.
>>
>> Thanks
>>
>> Richard
>>
>>
>> On Tue, Apr 23, 2013 at 12:26 AM, guruyaya <[email protected]> wrote:
>>
>>> The idea seems extremly unefficiant. Wouldn't it make more sense to
>>> build it from logs, on a seperate machine?
>>>
>>>
>>> On Tuesday, April 23, 2013 1:08:02 AM UTC+3, Richard wrote:
>>>>
>>>> Hello,
>>>>
>>>> I want to share this little snippet :
>>>>
>>>> # MODEL
>>>>
>>>> # Statistics of utilisation
>>>> db.define_table('usage_**statist**ics',
>>>>     Field('time_stamp','datetime', default=request.now),
>>>>     Field('client_ip','string', default=request.client),
>>>>     Field('user_id', 'reference auth_user', default=auth.user and
>>>> auth.user.id),
>>>>     Field('request_controller','**st**ring',
>>>> default=request.controller),
>>>>     Field('request_function','**stri**ng', default=request.function),
>>>>     Field('request_extension','**str**ing', default=request.extension),
>>>>     Field('request_ajax','string', default=request.ajax),
>>>>     Field('request_args','string', default=request.args),
>>>>     Field('request_vars','string', default=request.vars),
>>>>     Field('request_view','string', default=request.view),
>>>>     Field('request_http_user_**agent**','string',
>>>> default=request.env.http_user_****agent),
>>>>     Field('request_language','**stri**ng', default=request.env.http_**
>>>> accep**t_language),
>>>>     Field('description', 'text'),
>>>>     migrate=False,
>>>>     )
>>>>
>>>> # CONTROLLER
>>>>
>>>> def select():
>>>>     """
>>>>     Display log event into usage_statistics table.
>>>>     """
>>>>     db.usage_statistics.id.**readabl**e = False
>>>>     table = SQLFORM.grid(db.usage_**statisti**cs,
>>>> orderby=~db.usage_statistics.**t**ime_stamp, ui='jquery-ui', formstyle
>>>> = 'divs',)
>>>>     return dict(table=table)
>>>>
>>>> # VIEWS
>>>>
>>>> # Just put these two lines in ALL your views or only the views you want
>>>> to log and you can log what your users do!!
>>>>
>>>> {{db.usage_statistics.insert()****}}
>>>> {{db.commit()}}
>>>>
>>>> *Only thing I didn't figured out yet is what the best way to log
>>>> delete event... I thought about that :*
>>>>
>>>> # Not tested and pseudo code
>>>> def myeventlogcall(form)
>>>>     if form.delete:
>>>>         db.usage_statistics.insert()
>>>>         db.commit()
>>>>
>>>> def update_functions():
>>>> ...
>>>>      form.process(ondelete=myevent****logcall)
>>>> ...
>>>>
>>>> But, it makes things complicated if case there is already ondelete in
>>>> an update_function...
>>>>
>>>> Any suggestion is welcome.
>>>>
>>>> Thanks
>>>>
>>>> Richard
>>>>
>>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "web2py-users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to web2py+un...@**googlegroups.com.
>>>
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>> .
>>>
>>>
>>>
>>
>>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to