Yes, the worker processes are separate instances of the Python interpreter, 
so you must restart them for any changes in modules to take effect.

Anthony

On Thursday, August 17, 2017 at 1:51:44 PM UTC-4, David Orme wrote:
>
> I've still got some very odd differences between the controller and the 
> scheduler. The task function uses an external module, stored in the 
> application `modules` folder. I've updated it recently, and deleted the 
> .pyc before doing so, so it should all be up to date. I've also restarted 
> the apache2 webserver.
>
> If I run the function from the controller, it works as expected, but 
> scheduled tasks are using the older version of the external module. I've no 
> idea where it could be finding the code - is there anywhere I should look 
> for cached versions?
>
> Oh hang on... Is it that the worker processes were started when the old 
> version was in place? Do you need to restart the workers after updating 
> python modules? I've added new modules, so maybe new modules get added, but 
> existing ones use the version in place when the worker started?
>
> Thanks,
> David
>
>
>
> On Thursday, 17 August 2017 11:22:50 UTC+1, David Orme wrote:
>>
>> Hi,
>>
>> I have a function that checks an uploaded file. I want the check to get 
>> scheduled automatically on upload but I also want admin user to be able to 
>> run the check live from the website (it doesn't take too long). I currently 
>> have a single function in a model that gets shared, but then it has to cope 
>> with the  differences in the runtime environment for a controller and for a 
>> scheduler worker.
>>
>> One example is that  worker does not have access to the host name from 
>> the request environment, so  `URL(..., host=True)` provides localhost 
>> (127.0.0.1). That's easy to solve by loading the host name via AppConfig(), 
>> which is in both environments.
>>
>> The other one is that a worker needs to run db.commit() to get the DAL to 
>> run any updates or inserts in the function. Easy enough to stick 
>> `db.commit()` in before returning from the function, but the controller 
>> will then also commit when it is run from the website. Is this a problem, 
>> either for overhead or for the database? Are there any other issues which 
>> mean I should keep the scheduler version and controller version separate?
>>
>> Thanks,
>> David
>>
>>

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