The model does not "routinely run" at all. None of your app code will run at all (ever) unless (a) you make an HTTP request to the app (i.e., via a browser), (b) you run a web2py shell via the command line via the -S option, or (c) you run a job via the web2py scheduler.
I highly doubt your code is taking 15 seconds to run. However, it is unclear how the value test2 is getting from your module code to a web page, as you don't show that in your example. Please show *all* the relevant code and explain exactly what you are doing to observe values inserted/changed in the database. Anthony On Tuesday, December 8, 2015 at 2:05:28 PM UTC-5, Aydin S wrote: > > I think when a table gets updated on the web it already refreshes the > databases immediately and the data gets written, but I think the models > routinely run or there is a delay of about 15 second after you update the > data in a module to get into the database. > > On Tuesday, 8 December 2015 14:03:31 UTC-5, Aydin S wrote: >> >> I am testing it with a test code which is exactly what I wrote so there >> is only one table with my field. >> I think it makes sense, that's why there is scheduler and cron developed >> for web2py. I'm trying to understand if I should run model1.py (where the >> module1 is imported) as a web2py cron or scheduled task. >> >> On Tuesday, 8 December 2015 13:58:37 UTC-5, Richard wrote: >>> >>> 15 seconds... how many tables does your app has? I think you are doing >>> something wrong somewhere... >>> >>> Richard >>> >>> On Tue, Dec 8, 2015 at 1:53 PM, Aydin S <[email protected]> wrote: >>> >>>> I realized the data gets updated but it takes around 15 seconds which I >>>> think it is what the model1.py routinely runs. This is a problem for me >>>> because I want it to run faster. >>>> >>>> >>>> On Tuesday, 8 December 2015 13:37:42 UTC-5, Richard wrote: >>>>> >>>>> Notice if you chage your module file you need to restart web2py... Or >>>>> user track change feature, but in the past it was broken don't know if >>>>> now >>>>> it works properly... >>>>> http://web2py.com/books/default/chapter/29/04/the-core?search=track_changes >>>>> >>>>> On Tue, Dec 8, 2015 at 1:33 PM, Aydin S <[email protected]> wrote: >>>>> >>>>>> In other words, module1 does not seem to run unless I refresh the >>>>>> website. >>>>>> >>>>>> On Tuesday, 8 December 2015 13:28:26 UTC-5, Aydin S wrote: >>>>>>> >>>>>>> Here is what I have: >>>>>>> >>>>>>> In model db.py I have: >>>>>>> >>>>>>> db.define_table('Table1', >>>>>>> Field('var1', 'integer'), >>>>>>> from module1 import insert_record >>>>>>> insert_record(db) >>>>>>> >>>>>>> and in a module1 I write on the database and also get access to the >>>>>>> database: >>>>>>> >>>>>>> from gluon import current >>>>>>> def insert_record(db): >>>>>>> db = current.db >>>>>>> test1 = 2 #for example >>>>>>> db.Table1.insert(var=test1) >>>>>>> test2 = db().select(db.Table1.var1, orderby=~db.Table1.id, >>>>>>> limitby=(0, 1))[0].var1 >>>>>>> >>>>>>> Then test2 is used to show up on a display. test2 changes because >>>>>>> var1 changes. The problem is that test2 does seem to get updated when >>>>>>> var1 >>>>>>> changes without refreshing the website (I refresh the databases). Is it >>>>>>> because this action is in the models? Should I use scheduler to do this? >>>>>>> >>>>>>> On Tuesday, 8 December 2015 13:15:38 UTC-5, Richard wrote: >>>>>>>> >>>>>>>> Difficult to say without seeing the code, you may need db.commit() >>>>>>>> or not. >>>>>>>> >>>>>>>> Richard >>>>>>>> >>>>>>>> On Tue, Dec 8, 2015 at 1:05 PM, Aydin S <[email protected]> wrote: >>>>>>>> >>>>>>>>> I got another question if you could help. >>>>>>>>> The database does not get updated without I refresh the website in >>>>>>>>> this scenario. I don't know why it is, do I need to use commit() >>>>>>>>> somewhere >>>>>>>>> or since this is in the models it will not run as the variable inside >>>>>>>>> the >>>>>>>>> module changes? Do I have to use scheduler? Any idea? >>>>>>>>> >>>>>>>>> On Monday, 7 December 2015 18:56:10 UTC-5, Hans Soflao wrote: >>>>>>>>>> >>>>>>>>>> Thanks Anthony and Richard. >>>>>>>>>> Yes, my variable was inside the module and was not a global one. >>>>>>>>>> Thanks for the link, I am running the variable inside the function >>>>>>>>>> and it >>>>>>>>>> is local. >>>>>>>>>> I tested the code and it worked. >>>>>>>>>> >>>>>>>>>> On Monday, December 7, 2015 at 12:44:40 PM UTC-5, Richard wrote: >>>>>>>>>>> >>>>>>>>>>> @Hans, what is your question about variable in module exactly? >>>>>>>>>>> >>>>>>>>>>> What you did seems correct to me... >>>>>>>>>>> >>>>>>>>>>> About "db = current.db" be aware of that : >>>>>>>>>>> http://web2py.com/books/default/chapter/29/04/the-core#Warning--Do-not-use-the-current-object-in-global-scope-in-a-module >>>>>>>>>>> >>>>>>>>>>> On Mon, Dec 7, 2015 at 12:13 PM, Hans Soflao <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Thank you, I used the method Anthony mentioned and it worked. >>>>>>>>>>>> Now a follow up question, in order to have access to database >>>>>>>>>>>> in this module to assign var1 (defined in the database) to var2 >>>>>>>>>>>> (defined in >>>>>>>>>>>> the module) what is the best method? >>>>>>>>>>>> >>>>>>>>>>>> For instance to have access to the latest row of data in the >>>>>>>>>>>> table1 defined in the model as >>>>>>>>>>>> db.define_table('Table1', >>>>>>>>>>>> Field('F1', 'integer')) >>>>>>>>>>>> >>>>>>>>>>>> should I have in the model the following?: >>>>>>>>>>>> >>>>>>>>>>>> from gluon import current >>>>>>>>>>>> current.db = db >>>>>>>>>>>> >>>>>>>>>>>> and in the module module1.py?: >>>>>>>>>>>> >>>>>>>>>>>> def module1(): >>>>>>>>>>>> db = current.db >>>>>>>>>>>> var2=db().select(db.Table1.var1, orderby=~db.Table1.id, >>>>>>>>>>>> limitby=(0, 1))[0].var1 >>>>>>>>>>>> >>>>>>>>>>>> Thanks >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Friday, December 4, 2015 at 9:39:35 AM UTC-5, Aydin S wrote: >>>>>>>>>>>> >>>>>>>>>>>>> This might be asked before and I already found a similar >>>>>>>>>>>>> question in here: >>>>>>>>>>>>> https://groups.google.com/forum/#!topic/web2py/0k0Fvw6fmb8 >>>>>>>>>>>>> but this seemed a bit confusing. How to write on database from >>>>>>>>>>>>> within a module? >>>>>>>>>>>>> I have a table defined in db.py (model) as follows: >>>>>>>>>>>>> db.define_table('Table1', >>>>>>>>>>>>> Field('F1', 'integer')) >>>>>>>>>>>>> >>>>>>>>>>>>> Now I have a variable var1 in the module module1.py that I >>>>>>>>>>>>> want to write it into F1. >>>>>>>>>>>>> >>>>>>>>>>>>> var1=2 >>>>>>>>>>>>> >>>>>>>>>>>>> Is this similar approach to read a variable from database in a >>>>>>>>>>>>> module? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>> Resources: >>>>>>>>>>>> - http://web2py.com >>>>>>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>>>>>> --- >>>>>>>>>>>> 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/d/optout. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>> Resources: >>>>>>>>> - http://web2py.com >>>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>>> --- >>>>>>>>> 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/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>> Resources: >>>>>> - http://web2py.com >>>>>> - http://web2py.com/book (Documentation) >>>>>> - http://github.com/web2py/web2py (Source code) >>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>> --- >>>>>> 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/d/optout. >>>>>> >>>>> >>>>> -- >>>> Resources: >>>> - http://web2py.com >>>> - http://web2py.com/book (Documentation) >>>> - http://github.com/web2py/web2py (Source code) >>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>> --- >>>> 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/d/optout. >>>> >>> >>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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/d/optout.

