Was able to get this working. When I created the task, I originally had the
application named something else. After renaming the application I forgot
to update the application_name on the scheduler_task table. Once I did that
it started working.
On Monday, November 23, 2015 at 4:33:34 PM UTC-5, Niphlod wrote:
>
> without the complete code is hard to see where the exception may raise,
> but a serious question arises: why should you manage threads inside a
> scheduler-executed task ?
> At that level of abstraction, if you NEED to fine-tune code execution at
> that level, just use a normal web2py shell.
>
> Did you try to start that machinery in web2py's shell just to avoid having
> another layer of complexity brought by the scheduler ?
> BTW, for everybody: if you can code a function that works fine when used
> in the web2py shell, the same will probably work when queued in the
> Scheduler. If it doesn't in web2py's shell, start debugging from there
> instead of inside the scheduler
>
> On Monday, November 23, 2015 at 9:54:14 PM UTC+1, Benson Myrtil wrote:
>>
>> I am getting the following error when running a scheduler task with
>> threading:
>>
>> Traceback (most recent call last): File
>> "C:\Users\devteam\Desktop\web_apps\launchpad\production\web2py\gluon\scheduler.py",
>>
>> line 298, in executor functions = current._scheduler.tasks
>> AttributeError: 'thread._local' object has no attribute '_scheduler'
>>
>> # THREAD FUNCTION TO SET ACCOUNT
>> def set_account( kwargs ):
>>while not q.empty( ):
>> entry = q.get( )
>> kwargs[ 'db_con' ].db.account.update_or_insert( kwargs[ 'db_con'
>> ].db.account.ad_object_guid == entry[ 'ad_object_guid' ], **entry )
>>
>> # CREATE SET AMOUNT OF THREADS
>> for i in range( num_of_threads ):
>>key = 'Thread_{0}'.format( i )
>>db_con[ key ] = Launchpad_DB( fake_migration = True, lazy_tables = True,
>> is_worker = True )
>>db_con[ key ].define_account( )
>>threads[ key ] = LaunchpadThread( i, key, set_account, db_con = db_con[
>> key ] )
>>threads[ key ].start( )
>> # WAIT FOR ALL THREADS TO FINISH
>> for key in threads:
>>threads[ key ].join( )
>>
>>
>> I am assuming the error is happening somewhere in there. I create a queue
>> that holds all the accounts that are ready to be updated. I create a new
>> DAL connection for each thread and pass that in.
>>
>> Any idea why I would be getting the error that I am?
>>
>
--
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.