As documented in the web2py book,

The "web2py.py" script can take many command-line arguments specifying the
maximum number of threads, enabling of SSL, etc. For a complete list type:

>>> python web2py.py -h

For example, a shell script called async_events.sh can be called at
reboot as follows:

#! /bin/bash

cd /home/www-data/web2py

python web2py.py -S YOUR_APPLICATION_NAME -M -R
applications/YOUR_APPLICATION_NAME/private/async_events.py


The contents of async_events.py are a simple python script run as if it
were a request from web2py

For example:

import time



def create_pdfs(db):
>     while True:
>         ALL YOUR PDF PROCESSING LOGIC HERE

            time.sleep(60)

>



create_pdfs(db)



The above is an example script where your create_pdfs function handles all
the processing logic.

The time.sleep(60) means run every minute.

You would run this task once @reboot so python would handle the interval
between tasks.

>From there, you can use all the internal web2py API including mail.send()
etc


-Mark



On Sun, Oct 4, 2015 at 8:16 AM, Luis Valladares <luisvalladare...@gmail.com>
wrote:

> Hello mark! thanks for you answer.
>
> Your approach sounds really nice, but exactly how you run a cron task
> inside web2py environment? you start the web2py client with the console
> option and there execute the task? may you give me an example of this?
>
>
> El domingo, 4 de octubre de 2015, 8:31:20 (UTC-4:30), Mark Graves escribió:
>>
>> Luis,
>>
>> I've never personally used celery to queue tasks to execute in a web2py
>> environment.
>>
>> I found myself in a similar situation recently and just used a cron task
>> running a python script in the web2py environment from the command line.
>>
>> Is there a particular reason this workflow would not work for you?
>>
>> -Mark
>>
>> On Saturday, October 3, 2015 at 10:40:47 AM UTC-5, Luis Valladares wrote:
>>>
>>> But how can you exec a web2py task (who may uses web2py internal
>>> components like Request, response, db, etc..) with a external celery app? i
>>> mean, if i wish to execute a task, for example: To insert a new register in
>>> a table of my web2py database, and in enqueue this task to a remote (or
>>> local) celery worker to do it, how i can get this worker to know about all
>>> the "environment" of web2py? the only idea i have its creating a worker
>>> that is aware of the web2py environment, but i dont know how to do this.
>>>
>>> There is anyway to use celery queue to execute tasks that requires the
>>> web2py environment?
>>>
>>> El viernes, 2 de octubre de 2015, 5:46:35 (UTC-4:30), Niphlod escribió:
>>>>
>>>> I'd say you're loosing yourself in a glass of water. In order to
>>>> schedule something, that something must work. If your "something" doesn't,
>>>> it really doesn't matter what tool are you issuing commands to.
>>>>
>>>> On Friday, October 2, 2015 at 11:56:55 AM UTC+2, Stefan van den
>>>> Eertwegh wrote:
>>>>>
>>>>> Hi Niphlod,
>>>>>
>>>>> Thanks for you answer.
>>>>>
>>>>> Why i am asking this is because i want to generate around 150 pdf's by
>>>>> weasyprint and per each pdf i want to queue a mail with it as an 
>>>>> attachment.
>>>>> Could this be done by the build in web2py Scheduler?
>>>>>
>>>>> PS: i tried the scheduler, but it tries to use the generic.html view
>>>>> but has not enough settings provided in the layout.html to use it, it 
>>>>> fails.
>>>>> is is not so that it executes the function from the model with
>>>>> database privileges and not uses a view? Or is it also using the default
>>>>> generic view?
>>>>>
>>>>> Thanks for responding!
>>>>>
>>>>> Best regards,
>>>>> Stefan
>>>>>
>>>>> Op vrijdag 2 oktober 2015 11:21:07 UTC+2 schreef Niphlod:
>>>>>>
>>>>>> you won't ever get to start workers from web2py, either with the
>>>>>> embedded scheduler, with rq or with celery.........that's pretty much a
>>>>>> requirement (being completely separated)
>>>>>>
>>>>>> PS: celery integration was done on a so old release of celery that it
>>>>>> won't ever be production ready
>>>>>>
>>>>>> PS2: you don't need any web2py plugin to push task to celery.
>>>>>>
>>>>>>
>>>>>> --
> 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 a topic in the
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/web2py/YHsRsh0uQGo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> web2py+unsubscr...@googlegroups.com.
> 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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to