glad you worked it out but IMHO a request in appadmin should have created 
.table AND the underlying structure on the db (in other words, there 
shouldn't be a place on the universe where .table files are created but the 
underlying tables on the backend are not created.)

On Monday, December 21, 2015 at 2:54:11 PM UTC+1, Gael Princivalle wrote:
>
> Done!
>
> Here is the solution (part is from another post from Leonel):
> Set db string conection with migrate=False and fake_migrate_all=False
> Delete scheduler.py file
> Delete scheduler table files
> Delete scheduler tables in db
> Set db string conection with fake_migrate_false=True
> Run admin (create table files)
> Remove fake_migrate_all and set migrate=True
> Create again the scheduler
> Run admin, tables are created in the db
>
> AND! Now scheduler works.
>
> Il giorno lunedì 21 dicembre 2015 09:35:20 UTC+1, Niphlod ha scritto:
>>
>> there's no way .table files are created but tables aren't ... please 
>> triple check your settings ....
>>
>> On Sunday, December 20, 2015 at 9:28:39 PM UTC+1, Gael Princivalle wrote:
>>>
>>> Now tables files are created in the database folder, but tables are not 
>>> created in the postgress DB.
>>> Error in always the same when I try to open a table from the 
>>> administration interface.
>>>
>>> ProgrammingError: relation "scheduler_worker" does not exist
>>> LINE 1: SELECT count(*) FROM "scheduler_worker" WHERE ("scheduler_wo...
>>>
>>>
>>> About migrations my db is like that:
>>> db = DAL('postgres://user:pass@localhost:5432/postg_db', 
>>> check_reserved=['all'], pool_size=1, entity_quoting=True, bigint_id=True, 
>>> migrate=True, fake_migrate_all=True)
>>>
>>> And I've saw also that in the complete scheduler signature you can set 
>>> migrate to True so in scheduler.py I have:
>>> Scheduler(db, dict(e_db=e_db, update_products_auto=update_products_auto, 
>>> sitemap_txt_auto=sitemap_txt_auto), migrate=True)
>>>
>>> PostgreSQL tables are not created.
>>> So this is a desperate attempt, deleting all scheduler and create it 
>>> again. I've done it for resolving this scheduler problem, it don't runs for 
>>> all my old four applications that I've moved with "pack all" from 2.9.12. 
>>> version to this 2.12.3 version. DB's are new. I've moved data with 
>>> export/import linux commands, pg_dump, psql.
>>>
>>> And for new applications scheduler runs.
>>>
>>> How can I make the debug of it?
>>>
>>> Thanks.
>>>
>>>
>>> Il giorno domenica 20 dicembre 2015 13:51:45 UTC+1, Niphlod ha scritto:
>>>>
>>>> you just had to delete corresponding .table files. scheduler tables are 
>>>> created as soon as the scheduler is istantiated, unless migrations are 
>>>> turned off.
>>>>
>>>> On Friday, December 18, 2015 at 4:17:48 PM UTC+1, Gael Princivalle 
>>>> wrote:
>>>>>
>>>>> No I don't.
>>>>>
>>>>> But now I have:
>>>>> Dropped all tables in the database folder
>>>>> Delete all scheduler tables in the postgress database.
>>>>> Delete the scheduler
>>>>> Create the scheduler.
>>>>> I still have the same db error, for example for workers:
>>>>>
>>>>> SELECT count(*) FROM "scheduler_worker" WHERE ("scheduler_wo...
>>>>>
>>>>> table files are created but not for scheduler tables
>>>>> scheduler tables in postgress db are not created.
>>>>>
>>>>> Do you know why?
>>>>>
>>>>> Il giorno venerdì 18 dicembre 2015 15:48:06 UTC+1, Niphlod ha scritto:
>>>>>>
>>>>>> when you dropped tables, did you remember to delete the corresponding 
>>>>>> *.table files from the databases/ folder ?
>>>>>>
>>>>>> On Friday, December 18, 2015 at 12:47:38 PM UTC+1, Gael Princivalle 
>>>>>> wrote:
>>>>>>>
>>>>>>> >scheduler tables can be dropped manually
>>>>>>> Done
>>>>>>>
>>>>>>> >deleting scheduler.py also.
>>>>>>> Done
>>>>>>>
>>>>>>> >But I still don't think that it's the way to fix the issue you're 
>>>>>>> facing.
>>>>>>> Well I'm not able to understand which is this problem, as when I 
>>>>>>> create a scheduler in a new app tasks are running.
>>>>>>> For the moment creating a new scheduler is my better idea, if you 
>>>>>>> have a better one thanks.
>>>>>>>
>>>>>>> Anyway now I've got this error when I try to open the scheduler 
>>>>>>> table, for example scheduler_task.
>>>>>>> My db string have now migrate=True, fake_migrate_all=True.
>>>>>>> My only other idea is rebuild all the app starting from a new one, 
>>>>>>> but if I can resolve it in a shorter way I prefer.
>>>>>>>
>>>>>>>     Traceback (most recent call last):
>>>>>>>   File 
>>>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/applications/hydrover_oleodinamica/controllers/appadmin.py",
>>>>>>>  line 238, in select
>>>>>>>     nrows = db(query).count()
>>>>>>>   File 
>>>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/objects.py",
>>>>>>>  line 1992, in count
>>>>>>>     return db._adapter.count(self.query,distinct)
>>>>>>>   File 
>>>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/base.py",
>>>>>>>  line 1311, in count
>>>>>>>     self.execute(self._count(query, distinct))
>>>>>>>   File 
>>>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/postgres.py",
>>>>>>>  line 360, in execute
>>>>>>>     return BaseAdapter.execute(self, *a, **b)
>>>>>>>   File 
>>>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/base.py",
>>>>>>>  line 1378, in execute
>>>>>>>     return self.log_execute(*a, **b)
>>>>>>>   File 
>>>>>>> "/home/tasko/webapps/w2p_2_12_3/web2py/gluon/packages/dal/pydal/adapters/base.py",
>>>>>>>  line 1372, in log_execute
>>>>>>>     ret = self.cursor.execute(command, *a[1:], **b)
>>>>>>> ProgrammingError: relation "scheduler_task" does not exist
>>>>>>> LINE 1: SELECT count(*) FROM "scheduler_task" WHERE ("scheduler_task...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Il giorno venerdì 18 dicembre 2015 11:58:15 UTC+1, Niphlod ha 
>>>>>>> scritto:
>>>>>>>>
>>>>>>>> scheduler tables can be dropped manually
>>>>>>>> deleting scheduler.py also.
>>>>>>>> But I still don't think that it's the way to fix the issue you're 
>>>>>>>> facing.
>>>>>>>>
>>>>>>>> On Friday, December 18, 2015 at 11:22:57 AM UTC+1, Gael Princivalle 
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> >delete what ? the istantiation ? 
>>>>>>>>>
>>>>>>>>> Delete the scheduler.py file from models and all scheduler tables.
>>>>>>>>> How can I do it?
>>>>>>>>>
>>>>>>>>> Il giorno venerdì 18 dicembre 2015 10:48:23 UTC+1, Niphlod ha 
>>>>>>>>> scritto:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Friday, December 18, 2015 at 10:45:22 AM UTC+1, Gael 
>>>>>>>>>> Princivalle wrote:
>>>>>>>>>>>
>>>>>>>>>>> I've set a scheduler in a new application and tasks are running.
>>>>>>>>>>>
>>>>>>>>>>> So probably there's a problem when a app comes from a previous 
>>>>>>>>>>> web2py version.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> as long as you let migration happen, no issues whatsoever.
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>> Anyway I think it can be resolved deleting the scheduler and 
>>>>>>>>>>> create it again, but I've tried to:
>>>>>>>>>>> Killing the worker - Ok
>>>>>>>>>>> Delete Scheduler Ko
>>>>>>>>>>>
>>>>>>>>>>> When I delete the scheduler.py file from admin web2py creates it 
>>>>>>>>>>> again.
>>>>>>>>>>>
>>>>>>>>>>> How can I delete the scheduler?
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> delete what ? the istantiation ? 
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks, regards.
>>>>>>>>>>>
>>>>>>>>>>> Il giorno giovedì 17 dicembre 2015 21:40:36 UTC+1, Gael 
>>>>>>>>>>> Princivalle ha scritto:
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks Niphlod.
>>>>>>>>>>>>
>>>>>>>>>>>> >So, here it is the breakdown of the possible issues:
>>>>>>>>>>>> >- are tasks QUEUED or ASSIGNED ?
>>>>>>>>>>>> QUEUED. But if I set the net run time to now + 2 minutes I can 
>>>>>>>>>>>> check that task don't run.
>>>>>>>>>>>> Status options don't have ASSIGNED.
>>>>>>>>>>>>
>>>>>>>>>>>> >If they are QUEUED, either they can't be executed yet (i.e. 
>>>>>>>>>>>> start_time in the future) or tasks are queued with a group_name 
>>>>>>>>>>>> that can't 
>>>>>>>>>>>> be processed by a worker . 
>>>>>>>>>>>> Main group for all.
>>>>>>>>>>>>
>>>>>>>>>>>> *>Check #1: there should be a scheduler_task row with 
>>>>>>>>>>>> group_name "in" scheduler_worker group_names*
>>>>>>>>>>>> >- if tasks SHOULD be ASSIGNED but remain on QUEUED status, no 
>>>>>>>>>>>> worker is running or workers can't agree on who is "the ticker".
>>>>>>>>>>>> Well worker is running and main is the group_name.
>>>>>>>>>>>>
>>>>>>>>>>>> *>Check #2 (there should be a scheduler_worker with is_ticker = 
>>>>>>>>>>>> True)*
>>>>>>>>>>>> Yes it have.
>>>>>>>>>>>>
>>>>>>>>>>>> Check is complete. I think I will cancel the scheduler and 
>>>>>>>>>>>> create it again. Thanks for your help.
>>>>>>>>>>>>
>>>>>>>>>>>> Il giorno giovedì 17 dicembre 2015 21:21:56 UTC+1, Niphlod ha 
>>>>>>>>>>>> scritto:
>>>>>>>>>>>>>
>>>>>>>>>>>>> I thought more people liked to see the code : I find myself 
>>>>>>>>>>>>> explaining scheduler internals more often than I'd like to :P
>>>>>>>>>>>>>
>>>>>>>>>>>>> soooooooooo. worker names.... worker names are used to 
>>>>>>>>>>>>> identify a worker process (it's enforced as unique in the 
>>>>>>>>>>>>> model)...
>>>>>>>>>>>>> I'll reply to some ideal "FAQ" questions....
>>>>>>>>>>>>> - Why worker names are important ? Because tasks ASSIGNED to a 
>>>>>>>>>>>>> worker_name (assigned_worker_name in scheduler_task) get 
>>>>>>>>>>>>> processed by that worker, and that worker only
>>>>>>>>>>>>> - Who chooses worker names ? the worker itself. It does so 
>>>>>>>>>>>>> concatenating the hostname and the PID, which results in a good 
>>>>>>>>>>>>> (and 
>>>>>>>>>>>>> unique) way to identify a process.
>>>>>>>>>>>>> - Who chooses that task "foo" gets processed by worker "bar" ? 
>>>>>>>>>>>>> A worker. It's when tasks from QUEUED go to the ASSIGNED 
>>>>>>>>>>>>> status... The 
>>>>>>>>>>>>> worker that does this is "the ticker". The ticker is "elected" 
>>>>>>>>>>>>> with a dumb 
>>>>>>>>>>>>> (and slow) - but reliable - algorithm among workers: it's the 
>>>>>>>>>>>>> only one that 
>>>>>>>>>>>>> can "assign" tasks (either to itself or to other workers). The 
>>>>>>>>>>>>> only thing 
>>>>>>>>>>>>> that blocks a ticker to assign tasks to a worker is the 
>>>>>>>>>>>>> group_name.
>>>>>>>>>>>>>
>>>>>>>>>>>>> So, here it is the breakdown of the possible issues:
>>>>>>>>>>>>> - are tasks QUEUED or ASSIGNED ? If they are QUEUED, either 
>>>>>>>>>>>>> they can't be executed yet (i.e. start_time in the future) or 
>>>>>>>>>>>>> tasks are 
>>>>>>>>>>>>> queued with a group_name that can't be processed by a worker . 
>>>>>>>>>>>>> *Check #1: there should be a scheduler_task row with 
>>>>>>>>>>>>> group_name "in" scheduler_worker group_names*
>>>>>>>>>>>>> - if tasks SHOULD be ASSIGNED but remain on QUEUED status, no 
>>>>>>>>>>>>> worker is running or workers can't agree on who is "the ticker". 
>>>>>>>>>>>>> *Check #2 (there should be a scheduler_worker with is_ticker = 
>>>>>>>>>>>>> True)*
>>>>>>>>>>>>> That should be it.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Note: if tasks are ASSIGNED to a worker that isn't there 
>>>>>>>>>>>>> anymore (i.e. is dead or, in your case, you changed hosting 
>>>>>>>>>>>>> facility) it's 
>>>>>>>>>>>>> not an issue. Any worker, periodically, checks if ALL other 
>>>>>>>>>>>>> workers are 
>>>>>>>>>>>>> alive (and kicking) and if a worker isn't kicking it's removed 
>>>>>>>>>>>>> from the 
>>>>>>>>>>>>> scheduler_worker table AND all tasks ASSIGNED to it gets 
>>>>>>>>>>>>> redistributed 
>>>>>>>>>>>>> among live workers. This in addition to the ticker redistributing 
>>>>>>>>>>>>> tasks 
>>>>>>>>>>>>> every once in a while if they're ready to be executed but not 
>>>>>>>>>>>>> executed yet 
>>>>>>>>>>>>> (it can, and it does happen, that a worker is busy processing a 
>>>>>>>>>>>>> long-running task while there are other tasks ready to be 
>>>>>>>>>>>>> processed (by 
>>>>>>>>>>>>> other workers). Every worker gets a fair chance of doing 
>>>>>>>>>>>>> something useful 
>>>>>>>>>>>>> instead of sleeping)
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thursday, December 17, 2015 at 9:02:11 PM UTC+1, Gael 
>>>>>>>>>>>>> Princivalle wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hello to all.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I've migrate my webfaction hosting to another webfaction 
>>>>>>>>>>>>>> hosting that run CentOS 7 (before it was a previous version 
>>>>>>>>>>>>>> of CentOS).
>>>>>>>>>>>>>> I was running web2py 2.9.12, now I have web2py 2.12.3.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I've got a strange problem with the scheduler.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Workers are in the db, they run, they are assigned to tasks, 
>>>>>>>>>>>>>> but tasks don't run.
>>>>>>>>>>>>>> When I've created new workers tasks have not take 
>>>>>>>>>>>>>> automatically the worker name. I've put all worker names by 
>>>>>>>>>>>>>> myself.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Perhaps the problem is due to the worker names.
>>>>>>>>>>>>>> In the previous hosting they were like that:
>>>>>>>>>>>>>> s18060957#14459
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> And now they have the webserver name:
>>>>>>>>>>>>>> web490.webfaction.com#12949
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> web2py seems to codify the webserver name, but in this new 
>>>>>>>>>>>>>> configuration it don't.
>>>>>>>>>>>>>> Is it why Scheduler don't run tasks?
>>>>>>>>>>>>>> How I can resolve that?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks, regards.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>

-- 
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.

Reply via email to